WebTools
Sample auditof a made-up bakery website. Business customers can show it with their own logo and colours.See it with your logoSample 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)
Step-by-step guide →
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
Step-by-step guide →
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)
Step-by-step guide →
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
Step-by-step guide →
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
Step-by-step guide →
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
Step-by-step guide →
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
Step-by-step guide →
✓ OKhttp:// redirects to https://What is this? →
✓ OKOnly one version of the domain (www or non-www) loadsWhat is this? →
✓ OKNo pages hidden from search enginesWhat is this? →
✓ OKCanonical tags point to the page itselfWhat is this? →
✓ OKrobots.txt is in placeWhat is this? →
✓ OKrobots.txt doesn’t block linked pagesWhat is this? →
✓ OKXML sitemap foundWhat is this? →

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
Step-by-step guide →
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
Step-by-step guide →
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
Step-by-step guide →
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)
Step-by-step guide →
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
Step-by-step guide →
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
Step-by-step guide →
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
Step-by-step guide →
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
Step-by-step guide →
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
Step-by-step guide →
✓ OKEvery page has a titleWhat is this? →
✓ OKPage titles are uniqueWhat is this? →
✓ OKEvery page has a meta descriptionWhat is this? →
✓ OKMeta descriptions fit in search resultsWhat is this? →
✓ OKEvery page has an H1 headingWhat is this? →
✓ OKNo pages with identical contentWhat is this? →

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
Step-by-step guide →
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
Step-by-step guide →
✓ OKStructured data on the homepageWhat is this? →
✓ OKStructured data can be readWhat is this? →
Not applicableLanguage versions (hreflang) set up correctlyThe site has no language versions, so hreflang isn’t needed.What is this? →
✓ OKFavicon foundWhat is this? →

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)
Step-by-step guide →
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)
Step-by-step guide →
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
Step-by-step guide →
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)
Step-by-step guide →
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
Step-by-step guide →
✓ OKHTML size is reasonableWhat is this? →
Not applicableModern image formats (WebP or AVIF) in useToo few images to judge.What is this? →
✓ OKA reasonable number of scriptsWhat is this? →

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)
Step-by-step guide →
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)
Step-by-step guide →
✓ OKPage language is setWhat is this? →
✓ OKPages are set up for mobileWhat is this? →
✓ OKZoom is allowed on phonesWhat is this? →

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
Step-by-step guide →
✓ OKAnalytics is installedWhat is this? →
✓ OKNo old Universal Analytics codeWhat is this? →
✓ OKOne GA4 ID per pageWhat is this? →
✓ OKGoogle tag loaded onceWhat is this? →
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.