Your Agency
Sample auditof a made-up bakery website. This is how your clients see it with your logo.Back to WebTools viewSample PDFSee plans
78/ 100

Full SEO audit

bakery.example

Audit AU-20261110-00042 · 10 Nov 2026 · 13 pages crawled, 3 links and 4 images tested · 56 checks

25 passed3 high impact11 medium15 low

Your site, as we saw it

10 Nov 2026
bakery.example
Screenshot of the homepage of bakery.example
Homepage screenshot

In Google search

bakery.examplebakery.exampleBakery Example – Sourdough, Pastries and Cakes Baked Daily in…Slow-fermented sourdough, butter croissants and celebration cakes, baked every morning. Order online for pickup.

When shared on social media

Largest images we downloaded

826 KBjpeg
402 KBjpeg
184 KBjpeg
94 KBjpeg

Fix these first

  1. Pages that return an error · Crawling & indexing · 2 items
  2. Broken internal links · On-page SEO · 1 item
  3. Tracking without a known cookie banner · Tracking setup · 1 item
  4. Images without alt text · Accessibility · 3 items
  5. Broken outgoing links · On-page SEO · 2 items
  6. Slow server response (over 800 ms) · Speed · 2 items
  7. Large images (over 300 KB) · Speed · 2 items
  8. Form fields without a label · Accessibility · 2 items
  9. Redirect chains · Crawling & indexing · 1 item
  10. Sitemap lists pages that don’t work · Crawling & indexing · 1 item

Crawling & indexing

69 / 100
High 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
✓ OKhttp:// redirects to https://
✓ OKOnly one version of the domain (www or non-www) loads
✓ OKNo pages hidden from search engines
✓ OKCanonical tags point to the page itself
✓ OKrobots.txt is in place
✓ OKrobots.txt doesn’t block linked pages
✓ OKXML sitemap found

On-page SEO

72 / 100
High 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
✓ OKEvery page has a title
✓ OKPage titles are unique
✓ OKEvery page has a meta description
✓ OKMeta descriptions fit in search results
✓ OKEvery page has an H1 heading
✓ OKNo pages with identical content

Structured data & sharing

93 / 100
Low 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
✓ OKStructured data on the homepage
✓ OKStructured data can be read
Not applicableLanguage versions (hreflang) set up correctlyThe site has no language versions, so hreflang isn’t needed.
✓ OKFavicon found

Speed

80 / 100
Medium 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
✓ OKHTML size is reasonable
Not applicableModern image formats (WebP or AVIF) in useToo few images to judge.
✓ OKA reasonable number of scripts

Accessibility

83 / 100
Medium 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)
✓ OKPage language is set
✓ OKPages are set up for mobile
✓ OKZoom is allowed on phones

Tracking setup

87 / 100
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
✓ OKAnalytics is installed
✓ OKNo old Universal Analytics code
✓ OKOne GA4 ID per page
✓ OKGoogle tag loaded once
What we found in the page code
Google Analytics 4G-B4K3RY2026
Google Tag ManagerNot found
Universal Analytics (old)Not found
Ad and analytics pixelsNot found
Cookie consent toolNot found

Pages crawled

Show all 15 addresses
AddressStatusTitleWordsResponse
https://bakery.example/200Bakery Example – Sourdough, Pastries and Cakes Baked Daily in Town441186 ms
https://bakery.example/breads200Breads326163 ms
https://bakery.example/pastries200Pastries | Bakery Example274209 ms
https://bakery.example/cakes200Celebration Cakes Made to Order – Birthday and Wedding Cakes | Bakery Example and Friends2591240 ms
https://bakery.example/about200About us | Bakery Example405140 ms
https://bakery.example/visit200Visit the Bakery – Opening Hours and Address | Bakery Example155140 ms
https://bakery.example/blog200Blog | Bakery Example136278 ms
https://bakery.example/christmas-2023404–186 ms
https://bakery.example/order200Order Online for Pickup | Bakery Example105980 ms
https://bakery.example/old-menu301 → https://bakery.example/menu–209 ms
https://bakery.example/breads/sourdough200Sourdough Bread – 48-Hour Slow Fermented Loaf | Bakery Example535232 ms
https://bakery.example/breads/rye200Rye Bread – Dark, Dense and Full of Flavour | Bakery Example194255 ms
https://bakery.example/cake-order-form404–2209 ms
https://bakery.example/blog/Why_Sourdough_Is_Better200Why sourdough is easier to digest800186 ms
https://bakery.example/menu301 → 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.