Full SEO audit
bakery.example
Audit AU-20261110-00042 · 10 Nov 2026 · 13 pages crawled, 3 links and 4 images tested · 56 checks
Your site, as we saw it
10 Nov 2026In Google search
When shared on social media
Largest images we downloaded




Fix these first
- Pages that return an error · Crawling & indexing · 2 items
- Broken internal links · On-page SEO · 1 item
- Tracking without a known cookie banner · Tracking setup · 1 item
- Images without alt text · Accessibility · 3 items
- Broken outgoing links · On-page SEO · 2 items
- Slow server response (over 800 ms) · Speed · 2 items
- Large images (over 300 KB) · Speed · 2 items
- Form fields without a label · Accessibility · 2 items
- Redirect chains · Crawling & indexing · 1 item
- Sitemap lists pages that don’t work · Crawling & indexing · 1 item
Crawling & indexing
69 / 100High impactPages that return an error2 itemsTo fix
Why it matters: Visitors and search engines land on an error instead of content.
How to fix it: Fix the page or redirect it (301) to the closest working page, and update links that point to it.
- https://bakery.example/christmas-2023 (404)
- https://bakery.example/cake-order-form (404)
Medium impactRedirect chains1 itemTo fix
Why it matters: A redirect that leads to another redirect slows pages down and can lose ranking signals.
How to fix it: Make every redirect go to the final page in one step.
- https://bakery.example/old-menu
Medium impactSitemap lists pages that don’t work1 itemTo fix
Why it matters: The sitemap should only list live pages that return 200.
How to fix it: Remove or update the listed addresses in the sitemap.
- https://bakery.example/christmas-2023 (404)
Medium impactInsecure (http://) files on secure pages1 itemTo fix
Why it matters: Browsers block or warn about these files, which can break the page and show a “not secure” warning.
How to fix it: Load these images, scripts and styles over https://.
- https://bakery.example/visit
Low impactNo canonical tag11 itemsTo fix
Why it matters: Without it, search engines guess which address is the main one when a page is reachable in several ways.
How to fix it: Add <link rel="canonical" href="…"> pointing to the page’s own preferred address.
- https://bakery.example/
- https://bakery.example/breads
- https://bakery.example/pastries
- https://bakery.example/cakes
- https://bakery.example/about
- https://bakery.example/visit
- https://bakery.example/blog
- https://bakery.example/order
- https://bakery.example/breads/sourdough
- https://bakery.example/breads/rye
- https://bakery.example/blog/Why_Sourdough_Is_Better
Low impactPages missing from the sitemap4 itemsTo fix
Why it matters: Pages that aren’t in the sitemap can be found later, or not at all.
How to fix it: Add these pages to your sitemap (or check why your sitemap tool skips them).
- https://bakery.example/order
- https://bakery.example/breads/sourdough
- https://bakery.example/breads/rye
- https://bakery.example/blog/Why_Sourdough_Is_Better
Low impactInternal links that go through a redirect2 itemsTo fix
Why it matters: Each redirect adds a delay and wastes some of the search engine’s crawl time.
How to fix it: Point these links straight at the final address.
- https://bakery.example/old-menu → https://bakery.example/menu
- https://bakery.example/menu → https://bakery.example/pastries
On-page SEO
72 / 100High impactBroken internal links1 itemTo fix
Why it matters: Visitors hit a dead end and search engines waste time on missing pages.
How to fix it: Fix the link target, or remove the link.
- https://bakery.example/cake-order-form — linked from https://bakery.example/cakes
Medium impactBroken outgoing links2 itemsTo fix
Why it matters: Links to pages that no longer exist frustrate visitors and look neglected.
How to fix it: Update or remove these links.
- https://oldmaps.example/bakery (404) — on https://bakery.example/, https://bakery.example/breads
- https://oldstudy.example/paper (410) — on https://bakery.example/blog/Why_Sourdough_Is_Better
Low impactTitles longer than 60 characters4 itemsTo fix
Why it matters: Google cuts long titles off with “…”.
How to fix it: Keep titles under about 60 characters, with the important words first.
- https://bakery.example/
- https://bakery.example/cakes
- https://bakery.example/visit
- https://bakery.example/breads/sourdough
Low impactPages with little text (under 250 words)4 itemsTo fix
Why it matters: Short pages rarely rank, unless they are contact or utility pages.
How to fix it: Expand important pages with useful detail, or merge similar thin pages.
- https://bakery.example/visit (155 words)
- https://bakery.example/blog (136 words)
- https://bakery.example/order (105 words)
- https://bakery.example/breads/rye (194 words)
Low impactDuplicate meta descriptions2 itemsTo fix
Why it matters: The same snippet on several pages makes them look alike in search results.
How to fix it: Write a description for each page.
- https://bakery.example/breads
- https://bakery.example/about
Low impactVery short titles1 itemTo fix
Why it matters: Short titles waste the chance to tell searchers what the page offers.
How to fix it: Use 30–60 characters, including what people search for.
- https://bakery.example/breads
Low impactMore than one H11 itemTo fix
Why it matters: Several main headings make the page’s topic less clear.
How to fix it: Keep one H1 and turn the others into H2s.
- https://bakery.example/cakes
Low impactHeadings skip a level1 itemTo fix
Why it matters: Jumping from H2 to H4 makes the structure harder to follow, especially with screen readers.
How to fix it: Use heading levels in order (H1 → H2 → H3).
- https://bakery.example/breads/sourdough
Low impactHard-to-read page addresses1 itemTo fix
Why it matters: Long addresses, capitals and underscores are harder to share and slightly worse for SEO.
How to fix it: Use short, lowercase addresses with hyphens between words (for new pages; redirect if you change existing ones).
- https://bakery.example/blog/Why_Sourdough_Is_Better
Structured data & sharing
93 / 100Low impactNo Twitter/X card tag11 itemsTo fix
Why it matters: Shares on X show a plain link instead of a card.
How to fix it: Add <meta name="twitter:card" content="summary_large_image">.
- https://bakery.example/
- https://bakery.example/breads
- https://bakery.example/pastries
- https://bakery.example/cakes
- https://bakery.example/about
- https://bakery.example/visit
- https://bakery.example/blog
- https://bakery.example/order
- https://bakery.example/breads/sourdough
- https://bakery.example/breads/rye
- https://bakery.example/blog/Why_Sourdough_Is_Better
Low impactNo Open Graph tags for sharing10 itemsTo fix
Why it matters: When the page is shared on Facebook, LinkedIn or Slack, the preview may have no image or a wrong title.
How to fix it: Add og:title, og:description and og:image (1200×630 px) to every page.
- https://bakery.example/breads
- https://bakery.example/pastries
- https://bakery.example/cakes
- https://bakery.example/about
- https://bakery.example/visit
- https://bakery.example/blog
- https://bakery.example/order
- https://bakery.example/breads/sourdough
- https://bakery.example/breads/rye
- https://bakery.example/blog/Why_Sourdough_Is_Better
Speed
80 / 100Medium impactSlow server response (over 800 ms)2 itemsTo fix
Why it matters: Every visitor waits for this before anything appears.
How to fix it: Turn on page caching, check slow plugins or database queries, or move to faster hosting.
- https://bakery.example/cakes (1240 ms)
- https://bakery.example/order (980 ms)
Medium impactLarge images (over 300 KB)2 itemsTo fix
Why it matters: Heavy images are the most common reason pages load slowly.
How to fix it: Resize to the displayed size and compress (e.g. with Squoosh or TinyPNG), ideally as WebP or AVIF.
- https://bakery.example/img/hero.jpg (826 KB)
- https://bakery.example/img/sourdough.jpg (402 KB)
Medium impactPages sent without compression1 itemTo fix
Why it matters: Compression (gzip or Brotli) usually makes HTML 70–80% smaller.
How to fix it: Turn on gzip or Brotli on the server or CDN.
- https://bakery.example/blog/Why_Sourdough_Is_Better
Low impactScripts that block the page from showing11 itemsTo fix
Why it matters: Scripts in <head> without async or defer must load before anything appears.
How to fix it: Add defer (or async) to these script tags, or move them to the end of the page.
- https://bakery.example/ (3 scripts)
- https://bakery.example/breads (3 scripts)
- https://bakery.example/pastries (3 scripts)
- https://bakery.example/cakes (3 scripts)
- https://bakery.example/about (3 scripts)
- https://bakery.example/visit (3 scripts)
- https://bakery.example/blog (3 scripts)
- https://bakery.example/order (3 scripts)
- https://bakery.example/breads/sourdough (3 scripts)
- https://bakery.example/breads/rye (3 scripts)
- https://bakery.example/blog/Why_Sourdough_Is_Better (3 scripts)
Low impactImages without browser caching2 itemsTo fix
Why it matters: Returning visitors download the same images again.
How to fix it: Send Cache-Control: max-age=31536000 (or similar) for images.
- https://bakery.example/img/hero.jpg
- https://bakery.example/img/sourdough.jpg
Accessibility
83 / 100Medium impactImages without alt text3 itemsTo fix
Why it matters: Screen readers can’t describe these images, and Google can’t understand them.
How to fix it: Add a short alt text that describes each image. Use alt="" for purely decorative ones.
- https://bakery.example/ (1 images)
- https://bakery.example/pastries (1 images)
- https://bakery.example/cakes (1 images)
Medium impactForm fields without a label2 itemsTo fix
Why it matters: Screen reader users don’t know what to type, and tapping the label doesn’t focus the field.
How to fix it: Give every field a <label for="…"> or an aria-label.
- https://bakery.example/ (1 fields)
- https://bakery.example/order (2 fields)
Medium impactLinks or buttons with no text1 itemTo fix
Why it matters: Screen readers announce just “link” or “button”, so people can’t tell what it does.
How to fix it: Add visible text or an aria-label (common with icon-only buttons).
- https://bakery.example/ (1)
Low impactLinks that say “click here” or “read more”1 itemTo fix
Why it matters: Out of context these links don’t say where they go, which hurts screen reader users and SEO.
How to fix it: Use descriptive link text, e.g. “Read the pricing guide”.
- https://bakery.example/ (“Read more”)
Tracking setup
87 / 100High impactTracking without a known cookie banner1 itemTo fix
Why it matters: In the EU and UK, analytics and ad pixels generally need consent first. We didn’t find a known consent tool (your banner may be custom).
How to fix it: Use a consent tool and Google Consent Mode v2, so tags wait for the visitor’s choice.
- https://bakery.example
Medium impactPages without the tracking code1 itemTo fix
Why it matters: Visits to these pages are missing from your analytics, so reports undercount.
How to fix it: Add the same GA4/GTM snippet to every page template.
- https://bakery.example/order
| Google Analytics 4 | G-B4K3RY2026 |
| Google Tag Manager | Not found |
| Universal Analytics (old) | Not found |
| Ad and analytics pixels | Not found |
| Cookie consent tool | Not found |
Pages crawled
Show all 15 addresses
| Address | Status | Title | Words | Response |
|---|---|---|---|---|
| https://bakery.example/ | 200 | Bakery Example – Sourdough, Pastries and Cakes Baked Daily in Town | 441 | 186 ms |
| https://bakery.example/breads | 200 | Breads | 326 | 163 ms |
| https://bakery.example/pastries | 200 | Pastries | Bakery Example | 274 | 209 ms |
| https://bakery.example/cakes | 200 | Celebration Cakes Made to Order – Birthday and Wedding Cakes | Bakery Example and Friends | 259 | 1240 ms |
| https://bakery.example/about | 200 | About us | Bakery Example | 405 | 140 ms |
| https://bakery.example/visit | 200 | Visit the Bakery – Opening Hours and Address | Bakery Example | 155 | 140 ms |
| https://bakery.example/blog | 200 | Blog | Bakery Example | 136 | 278 ms |
| https://bakery.example/christmas-2023 | 404 | – | 186 ms | |
| https://bakery.example/order | 200 | Order Online for Pickup | Bakery Example | 105 | 980 ms |
| https://bakery.example/old-menu | 301 → https://bakery.example/menu | – | 209 ms | |
| https://bakery.example/breads/sourdough | 200 | Sourdough Bread – 48-Hour Slow Fermented Loaf | Bakery Example | 535 | 232 ms |
| https://bakery.example/breads/rye | 200 | Rye Bread – Dark, Dense and Full of Flavour | Bakery Example | 194 | 255 ms |
| https://bakery.example/cake-order-form | 404 | – | 2 | 209 ms |
| https://bakery.example/blog/Why_Sourdough_Is_Better | 200 | Why sourdough is easier to digest | 800 | 186 ms |
| https://bakery.example/menu | 301 → https://bakery.example/pastries | – | 278 ms |
What this audit can’t see
- We crawl like a search engine, from the outside: pages behind a login, checkout or member area aren’t checked.
- We read the HTML your server sends. Content added later by JavaScript, and browser speed scores (Core Web Vitals), aren’t measured.
- Tracking is detected from the page code. We can’t tell whether tags really fire, or fire before consent, and we can’t see inside GA4 or GTM.
- We don’t judge content quality, keywords, rankings or backlinks.
- Very large sites are sampled: we stop at the page limit or after about three minutes.
- Results show the moment of the audit. They change as the site changes.