Bui Van Dat

17 Checks Every AI-Written Article Should Pass Before It Goes Live

The nightly audit I run on 1,581 AI-assisted articles: technical SEO, data accuracy, broken pieces, and the style tells that make AI content look careless.

4 min read
In this article
  1. Why check the published HTML
  2. Group 1: is the page indexable and well-formed?
  3. Group 2: is the content accurate?
  4. Group 3: are any pieces broken?
  5. Group 4: does it read like a careless machine wrote it?
  6. Fix automatically, or send to a human?
  7. How to start your own

Generating an article with a language model takes minutes. Making sure it is correct, renders properly, and does not quietly damage your site takes a system. This is the checklist my nightly audit runs on every published article on my sites. On October 10, 2026, it scanned 1,581 articles across 8 sites and reported zero open issues, but most of these checks exist because something did go wrong at least once.

Why check the published HTML

The audit reads the live page over HTTPS, not the database. That sounds like a detail, but it is the whole point. A post can look perfect in the editor and still ship broken, because of caching, theme templates, shortcodes, or plugins that rewrite output. Readers and search engines see the HTML, so that is what gets checked.

Group 1: is the page indexable and well-formed?

1. HTTP status. The article must return 200. Redirect chains and errors show up here first.

2. No accidental noindex. A stale cache once served an old noindex version of a page after the setting had been changed. Now the audit checks the actual robots meta in the HTML.

3. Canonical URL. It must exist and point to the article itself, on the right domain.

4. Exactly one H1. Templates and content sometimes both add a title. One page, one H1.

5. Title and meta description. Present, and within sensible length ranges so they are not cut off in search results.

6. Duplicate titles. Two articles with the same title compete with each other. The audit compares titles across the whole site.

Group 2: is the content accurate?

7. Unverifiable claims. Phrases like “we tested” or “in our lab” are flagged unless they are true. A model will happily invent hands-on experience. The checker knows the difference between “we used the title from the listing” and “we tested it”, which took a few rounds of tuning to avoid false alarms.

8. Prices in the body. Prices change daily, and my sites hide them on purpose. A price in the text is almost always stale the week after publishing. Budget ranges like “under $500” are allowed. Specific prices are not.

9. Score consistency. When a list ranks products, the scores must match the order. A product at position 3 should not outscore position 1.

10. Score mix. Scores must use a consistent scale throughout the article, not a mix of formats.

11. Products present. A product roundup with no product boxes means the shortcode failed or the data never loaded. That is flagged as a broken article.

Group 3: are any pieces broken?

12. Leaked shortcodes. If [product_list id=...] appears as text, the plugin did not run. The audit also looks inside JSON-LD, where leaked shortcodes are invisible to readers but visible to search engines.

13. Broken internal links. Every internal link is requested. One model run once escaped quotes twice, producing href=\"...\", which broke links in 12 published articles. That became a permanent check and a cleanup step in the writer.

14. Broken images. Every image URL must load over HTTPS. An avatar field once stored a media ID instead of a URL and rendered src="http://48".

15. Valid FAQ schema. If an article has an FAQ section, its structured data must be valid and match the visible questions.

Group 4: does it read like a careless machine wrote it?

16. Junk output. Leftovers like “Here is the article:”, placeholder tokens, or internal file names that a model echoed from its instructions. One draft mentioned the research file by name. It was caught and rewritten.

17. Style tells. Some punctuation and phrasing patterns are strongly associated with unedited AI text. The em dash is the classic example. My sites avoid it entirely, and when it comes from a product’s own listing title, the import step replaces it.

Fix automatically, or send to a human?

Not every failure needs me. The audit sorts issues into two groups:

  • Safe to auto-fix: inconsistent score formats, junk phrases, forbidden punctuation. The fix runs, then the article is checked again.
  • Needs judgment: unverifiable claims, missing products, broken links to removed pages. These go into a to-do list that I see in the morning report.

Big problems, like a site returning errors or more than 10 broken articles at once, trigger an immediate alert instead of waiting.

How to start your own

You do not need 17 checks on day one. Start with five:

  1. status code and noindex
  2. one H1 and a canonical URL
  3. broken internal links
  4. leaked shortcodes or template tags
  5. claims of first-hand testing

Run them on the live HTML, every night, and turn every new incident into a new check. After a few months you will have a list like this one, and your AI content will be held to a standard that most hand-written content never gets.

If you want to see how this fits into the larger system, read how I run 8 niche websites as a one-person team.

  • AI content
  • content QA
  • technical SEO
  • automation