Website report

Visit sitehttps://tang1693.github.io/

Audit Full discovery audit·Language English (en)·Response HTTP 200·Served by Fastly

Analysed Nov 9, 2026 · 15 categories · 68 passed · 26 warnings · 4 issues · 52 informational

Partial evidence; some observations were unavailable.

Audit score

F

39/100

Needs work

Agentic
100
SEO
38

What we found

4Needs a fix26Could be better68Looks good52Informational
  1. 1.Needs a fix: Your page has no search description. see checkA clear description gives people a reason to click your search result.
  2. 2.Needs a fix: Shared links are missing a description. see checkA short description explains what people will find when they open your link.
  3. 3.Needs a fix: Your link preview image needs attention. see checkA preview image makes your links easier to notice and recognize.
  4. 4.Could be better: Shared links are missing a title. see checkA recognizable title helps people understand a link in chats and feeds.
  5. 5.Could be better: Twitter/X card: needs attention. see checkComplete link previews make your pages easier to recognize and share.

Built with 4 technologies· detected stack

Read from the public source and response headers of the sampled pages.

How it fits together

  • GitHub PagesHosting / edge
  • FastlyCDN / edge
InfrastructureType
  • FastlyCDN / edge
  • VarnishCache
Hosting and deploymentType
  • GitHub PagesHosting / edge
Payments and servicesType
  • Google FontsFont integration

A framework or CDN signal describes the public response, not the origin host or private backend.

Site checks

68 passed · 26 warnings · 4 issues

Every observation from the crawl, grouped by what it describes. Open a row for the evidence and the recommended fix.

Metadata1Needs a fix8Looks good2Informational

68/100
Needs a fix: Meta description existsThe audited page has no meta description.

Needs a fix · Metadata · Review suggestedCritical

Observed evidence

The audited page has no meta description.

Why this matters

The title and description are the text someone reads in a search result before deciding whether to click. Right now the sampled pages don't provide it.

Recommended fix

Add <meta name="description" content="…"> with a one- or two-sentence summary of the page. Without it, search engines and link previews build a snippet from whatever page text they pick.

Reference
Not applicable: Meta description lengthThere is no meta description, so its length cannot be measured.

Not applicable · Metadata · Measured on your page

Observed evidence

There is no meta description, so its length cannot be measured.

Why this matters

The title and description are the text someone reads in a search result before deciding whether to click. This check does not apply to the features observed in this sample.

Recommended fix

The description presence check covers the missing element. Review length once a description exists.

Not measured: Titles unique across pagesFewer than two indexable pages with a title were sampled, so titles can't be compared.

Not measured · Metadata · Not established

Observed evidence

Fewer than two indexable pages with a title were sampled, so titles can't be compared.

Why this matters

This observation could not be established from the available evidence. Resolve the collection limit or inspect the relevant source before deciding whether a change is needed.

Recommended fix

Link your main pages from the homepage so crawlers (including this one) can find them.

Looks good: Page title exists

Looks good · Metadata · Measured on your page

Observed evidence

Title found: "Yang Tang - Academic Profile"

Why this matters

The title and description are the text someone reads in a search result before deciding whether to click. The inspected source provides this signal.

Recommended fix

Nothing to do here.

Looks good: Title length

Looks good · Metadata · Review suggested

Observed evidence

Title is 28 characters, inside this audit's 15–60 review range.

Why this matters

The title and description are the text someone reads in a search result before deciding whether to click. The inspected source provides this signal.

Recommended fix

Nothing to do here.

Looks good: Title says what the site does

Looks good · Metadata · Measured on your page

Observed evidence

Title "Yang Tang - Academic Profile" says more than the site name.

Why this matters

The title and description are the text someone reads in a search result before deciding whether to click. The inspected source provides this signal.

Recommended fix

Nothing to do here.

Show 5 more checks
Looks good: Homepage isn't noindexed

Looks good · Metadata · Measured on your page

Observed evidence

No blocking robots meta tag on the homepage.

Why this matters

The title and description are the text someone reads in a search result before deciding whether to click. The inspected source provides this signal.

Recommended fix

Nothing to do here.

Looks good: Character encoding declared

Looks good · Metadata · Measured on your page

Observed evidence

UTF-8 declared in the Content-Type header and a meta tag.

Why this matters

The title and description are the text someone reads in a search result before deciding whether to click. The inspected source provides this signal.

Recommended fix

Nothing to do here.

Looks good: HTML5 doctype

Looks good · Metadata · Measured on your page

Observed evidence

HTML5 doctype declared.

Why this matters

The title and description are the text someone reads in a search result before deciding whether to click. The inspected source provides this signal.

Recommended fix

Nothing to do here.

Looks good: No meta keywords tag

Looks good · Metadata · Measured on your page

Observed evidence

No obsolete meta keywords tag.

Why this matters

The title and description are the text someone reads in a search result before deciding whether to click. The inspected source provides this signal.

Recommended fix

Nothing to do here.

Looks good: Valid metadata order in <head>

Looks good · Metadata · Measured on your page

Observed evidence

No invalid element interrupts metadata in <head>.

Why this matters

The title and description are the text someone reads in a search result before deciding whether to click. The inspected source provides this signal.

Recommended fix

Nothing to do here.

Indexing2Could be better8Looks good6Informational

66/100
Could be better: Sitemap existsNo sitemap found (checked https://tang1693.github.io/sitemap.xml → 404).

Could be better · Indexing · Review suggested

Observed evidence

No sitemap found (checked https://tang1693.github.io/sitemap.xml → 404).

Why this matters

These rules decide whether the page can be indexed at all. One wrong directive hides good work. It is there, but weaker than this check expects.

Recommended fix

Publish a sitemap.xml and submit it in Google Search Console. Next.js: export from app/sitemap.ts — it's ~10 lines.

Reference
Could be better: Canonical URL setThe homepage has no canonical link.

Could be better · Indexing · Review suggested

Observed evidence

The homepage has no canonical link.

Why this matters

These rules decide whether the page can be indexed at all. One wrong directive hides good work. It is there, but weaker than this check expects.

Recommended fix

Add <link rel="canonical"> (Next.js: metadata.alternates.canonical). It consolidates ranking signals when the page is reachable under several URLs (with/without query params, trailing slash…).

Reference
Not applicable: Sampled URLs have aligned indexability signalsNo sitemap was found, so there are no submitted URLs to compare against.

Not applicable · Indexing · Measured on your page

Observed evidence

No sitemap was found, so there are no submitted URLs to compare against.

Why this matters

These rules decide whether the page can be indexed at all. One wrong directive hides good work. This check does not apply to the features observed in this sample.

Recommended fix

The sitemap check covers the missing file. Once one exists, this check confirms the URLs it lists are indexable.

Not applicable: robots.txt existsrobots.txt is absent.

Not applicable · Indexing · Measured on your page

Observed evidence

robots.txt is absent. A missing policy permits crawling by default.

Why this matters

These rules decide whether the page can be indexed at all. One wrong directive hides good work. This check does not apply to the features observed in this sample.

Recommended fix

Optional: publish a robots policy to advertise a sitemap or restrict selected paths.

Not measured: Sitemap parses and lists URLsNo sitemap was reachable, so its contents cannot be validated.

Not measured · Indexing · Not established

Observed evidence

No sitemap was reachable, so its contents cannot be validated.

Why this matters

This observation could not be established from the available evidence. Resolve the collection limit or inspect the relevant source before deciding whether a change is needed.

Recommended fix

Publish /sitemap.xml with your canonical URLs. This check then validates the XML and the URLs it lists.

Not applicable: Sitemap declared in robots.txtNo sitemap was reachable, so robots.txt has nothing to point at.

Not applicable · Indexing · Measured on your page

Observed evidence

No sitemap was reachable, so robots.txt has nothing to point at.

Why this matters

These rules decide whether the page can be indexed at all. One wrong directive hides good work. This check does not apply to the features observed in this sample.

Recommended fix

Publish the sitemap first, then add a Sitemap: line to robots.txt naming its absolute URL.

Show 10 more checks
Not applicable: Canonical is absolute and self-referencingThe page declares no canonical URL, so there is nothing to validate.

Not applicable · Indexing · Measured on your page

Observed evidence

The page declares no canonical URL, so there is nothing to validate.

Why this matters

These rules decide whether the page can be indexed at all. One wrong directive hides good work. This check does not apply to the features observed in this sample.

Recommended fix

Add <link rel="canonical" href="…"> pointing at the absolute, preferred URL of the page.

Not measured: URLs are readable slugsThe crawl reached no inner URLs, so URL readability cannot be assessed.

Not measured · Indexing · Not established

Observed evidence

The crawl reached no inner URLs, so URL readability cannot be assessed.

Why this matters

This observation could not be established from the available evidence. Resolve the collection limit or inspect the relevant source before deciding whether a change is needed.

Recommended fix

Link your inner pages from the homepage so they can be crawled. This check then reviews their path structure.

Looks good: Single canonical declaration

Looks good · Indexing · Measured on your page

Observed evidence

No canonical declaration to conflict.

Why this matters

These rules decide whether the page can be indexed at all. One wrong directive hides good work. The inspected source provides this signal.

Recommended fix

Nothing to do here.

Looks good: Noindex and canonical agree

Looks good · Indexing · Measured on your page

Observed evidence

No conflicting noindex and cross-page canonical instructions.

Why this matters

These rules decide whether the page can be indexed at all. One wrong directive hides good work. The inspected source provides this signal.

Recommended fix

Nothing to do here.

Looks good: No meta-refresh redirect

Looks good · Indexing · Measured on your page

Observed evidence

No meta-refresh redirect.

Why this matters

These rules decide whether the page can be indexed at all. One wrong directive hides good work. The inspected source provides this signal.

Recommended fix

Nothing to do here.

Looks good: No soft-404 response

Looks good · Indexing · Measured on your page

Observed evidence

No soft-404 pattern on sampled HTTP 200 pages.

Why this matters

These rules decide whether the page can be indexed at all. One wrong directive hides good work. The inspected source provides this signal.

Recommended fix

Nothing to do here.

Looks good: Canonical target integrity

Looks good · Indexing · Measured on your page

Observed evidence

No canonical target to validate in this check.

Why this matters

These rules decide whether the page can be indexed at all. One wrong directive hides good work. The inspected source provides this signal.

Recommended fix

Nothing to do here.

Looks good: robots.txt doesn't block everything

Looks good · Indexing · Measured on your page

Observed evidence

The audited URL is allowed for Googlebot. HTTP 404: no available robots policy.

Why this matters

These rules decide whether the page can be indexed at all. One wrong directive hides good work. The inspected source provides this signal.

Recommended fix

Nothing to do here.

Looks good: www vs apex consistency

Looks good · Indexing · Measured on your page

Observed evidence

Hostname is used consistently (tang1693.github.io).

Why this matters

These rules decide whether the page can be indexed at all. One wrong directive hides good work. The inspected source provides this signal.

Recommended fix

Nothing to do here.

Looks good: Sampled pages expose search-access signals

Looks good · Indexing · Measured on your page

Observed evidence

No restrictive search-access signal on 1 sampled page(s). Actual indexing is not verified.

Why this matters

These rules decide whether the page can be indexed at all. One wrong directive hides good work. The inspected source provides this signal.

Recommended fix

Nothing to do here.

Content8Looks good3Informational

79/100
Not measured: ReadabilityFlesch reading ease ≈ 17 — very difficult.

Not measured · Content · Not established

Observed evidence

Flesch reading ease ≈ 17 — very difficult.

Why this matters

This observation could not be established from the available evidence. Resolve the collection limit or inspect the relevant source before deciding whether a change is needed.

Recommended fix

Shorten sentences and prefer plain words. Aim for 50–70 for a general audience.

Not measured: Crawled pages aren't near-duplicatesOnly one page was sampled, so there is nothing to compare.

Not measured · Content · Not established

Observed evidence

Only one page was sampled, so there is nothing to compare.

Why this matters

This observation could not be established from the available evidence. Resolve the collection limit or inspect the relevant source before deciding whether a change is needed.

Recommended fix

Link your main pages from the homepage so the audit can sample and compare them.

Not measured: Discovery copy is distinct across sampled pagesOnly one distinct content page was sampled, so repeated discovery copy cannot be compared.

Not measured · Content · Not established

Observed evidence

Only one distinct content page was sampled, so repeated discovery copy cannot be compared.

Why this matters

This observation could not be established from the available evidence. Resolve the collection limit or inspect the relevant source before deciding whether a change is needed.

Recommended fix

Sample at least two substantial URLs so repeated descriptions, H1s, and publisher text can be checked.

Looks good: Crawlable content in source HTML

Looks good · Content · Measured on your page

Observed evidence

No recognized empty JavaScript application shell on 1 sampled page(s). The entered page exposes 1128 publisher word(s).

Why this matters

This is the substance of the page. Placeholders and repeated copy make it read as unfinished. The inspected source provides this signal.

Recommended fix

Nothing to do here.

Looks good: Homepage content volume

Looks good · Content · Measured on your page

Observed evidence

The audited page has about 1128 words of main content.

Why this matters

This is the substance of the page. Placeholders and repeated copy make it read as unfinished. The inspected source provides this signal.

Recommended fix

Nothing to do here.

Looks good: Text-to-HTML ratio

Looks good · Content · Measured on your page

Observed evidence

Text-to-HTML ratio is 68.2%.

Why this matters

This is the substance of the page. Placeholders and repeated copy make it read as unfinished. The inspected source provides this signal.

Recommended fix

Nothing to do here.

Show 5 more checks
Looks good: No placeholder text

Looks good · Content · Measured on your page

Observed evidence

No placeholder text detected on crawled pages.

Why this matters

This is the substance of the page. Placeholders and repeated copy make it read as unfinished. The inspected source provides this signal.

Recommended fix

Nothing to do here.

Looks good: No starter-template leftovers

Looks good · Content · Measured on your page

Observed evidence

No starter-template artifacts detected.

Why this matters

This is the substance of the page. Placeholders and repeated copy make it read as unfinished. The inspected source provides this signal.

Recommended fix

Nothing to do here.

Looks good: Title and H1 agree

Looks good · Content · Measured on your page

Observed evidence

Title and H1 share topic words: yang, tang.

Why this matters

This is the substance of the page. Placeholders and repeated copy make it read as unfinished. The inspected source provides this signal.

Recommended fix

Nothing to do here.

Looks good: No deprecated HTML tags

Looks good · Content · Measured on your page

Observed evidence

No deprecated HTML tags.

Why this matters

This is the substance of the page. Placeholders and repeated copy make it read as unfinished. The inspected source provides this signal.

Recommended fix

Nothing to do here.

Looks good: Outbound references

Looks good · Content · Measured on your page

Observed evidence

1 outbound link(s) present.

Why this matters

This is the substance of the page. Placeholders and repeated copy make it read as unfinished. The inspected source provides this signal.

Recommended fix

Nothing to do here.

Social sharing2Needs a fix3Could be better3Informational

7/100
Needs a fix: Open Graph descriptionNo og:description tag and no meta description to fall back on.

Needs a fix · Social sharing · Review suggestedCritical

Observed evidence

No og:description tag and no meta description to fall back on.

Why this matters

This is what your link looks like when someone drops it into a chat or a feed. Right now the sampled pages don't provide it.

Recommended fix

Add og:description. It is the preview text under shared links.

Reference
Needs a fix: Open Graph imageNo og:image tag.

Needs a fix · Social sharing · Review suggestedCritical

Observed evidence

No og:image tag.

Why this matters

This is what your link looks like when someone drops it into a chat or a feed. Right now the sampled pages don't provide it.

Recommended fix

Add a 1200×630 og:image. Without one, a shared link renders as plain text in most apps. Next.js generates one from opengraph-image.tsx.

Reference
Could be better: Open Graph titleNo og:title tag.

Could be better · Social sharing · Review suggested

Observed evidence

No og:title tag. Most apps fall back to the <title> ("Yang Tang - Academic Profile") for the preview headline.

Why this matters

This is what your link looks like when someone drops it into a chat or a feed. It is there, but weaker than this check expects.

Recommended fix

Add og:title when the share headline should differ from the search title, or to control the headline on platforms that do not fall back.

Reference
Could be better: Twitter/X cardNo twitter:card tag.

Could be better · Social sharing · Review suggested

Observed evidence

No twitter:card tag.

Why this matters

This is what your link looks like when someone drops it into a chat or a feed. It is there, but weaker than this check expects.

Recommended fix

Add <meta name="twitter:card" content="summary_large_image">. X falls back to Open Graph for the rest, but the card type itself must be declared.

Reference
Could be better: og:url and og:typeNeither og:url nor og:type is set.

Could be better · Social sharing · Review suggested

Observed evidence

Neither og:url nor og:type is set.

Why this matters

This is what your link looks like when someone drops it into a chat or a feed. It is there, but weaker than this check expects.

Recommended fix

Add og:url (canonical URL) and og:type ("website" for the homepage).

Reference
Not applicable: Share image loadsNo og:image tag was found, so there is no image URL to fetch and verify.

Not applicable · Social sharing · Measured on your page

Observed evidence

No og:image tag was found, so there is no image URL to fetch and verify.

Why this matters

This is what your link looks like when someone drops it into a chat or a feed. This check does not apply to the features observed in this sample.

Recommended fix

Add <meta property="og:image" content="…"> with an absolute URL. This check then confirms the file actually loads.

Not applicable: Share image dimensions declaredNo og:image tag was found, so its declared dimensions cannot be reviewed.

Not applicable · Social sharing · Measured on your page

Observed evidence

No og:image tag was found, so its declared dimensions cannot be reviewed.

Why this matters

This is what your link looks like when someone drops it into a chat or a feed. This check does not apply to the features observed in this sample.

Recommended fix

Add the og:image tag first, then declare og:image:width and og:image:height alongside it.

Not measured: og:site_nameNo og:site_name tag.

Not measured · Social sharing · Not established

Observed evidence

No og:site_name tag.

Why this matters

This observation could not be established from the available evidence. Resolve the collection limit or inspect the relevant source before deciding whether a change is needed.

Recommended fix

Add it. Share cards use it to label the publisher; consistent naming also gives this audit a measurable entity signal. It does not measure or guarantee citations, rankings, or traffic.

Reference

Structured dataNot measured

Not measured
Could be better: JSON-LD presentNo JSON-LD structured data on the homepage.

Could be better · Structured data · Review suggested

Observed evidence

No JSON-LD structured data on the homepage.

Why this matters

Structured data tells machines who published the page and what it describes. Broken markup is ignored outright. It is there, but weaker than this check expects.

Recommended fix

Add Organization and WebSite schema. They state who publishes the site and what it is called, which is what rich results and answer engines read first.

Reference
Could be better: Organization or WebSite schemaNo Organization, WebSite or Person schema found.

Could be better · Structured data · Review suggested

Observed evidence

No Organization, WebSite or Person schema found.

Why this matters

Structured data tells machines who published the page and what it describes. Broken markup is ignored outright. It is there, but weaker than this check expects.

Recommended fix

Add an identity node so search engines and AI assistants can attribute your content to a real entity.

Reference
Not applicable: JSON-LD parsesNo JSON-LD blocks were found, so there is no syntax to validate.

Not applicable · Structured data · Measured on your page

Observed evidence

No JSON-LD blocks were found, so there is no syntax to validate.

Why this matters

Structured data tells machines who published the page and what it describes. Broken markup is ignored outright. This check does not apply to the features observed in this sample.

Recommended fix

Add a <script type="application/ld+json"> block describing the page — Organization or WebSite is the usual starting point.

Not measured: Breadcrumb schema on inner pagesNo inner pages crawled.

Not measured · Structured data · Not established

Observed evidence

No inner pages crawled.

Why this matters

This observation could not be established from the available evidence. Resolve the collection limit or inspect the relevant source before deciding whether a change is needed.

Recommended fix

Not applicable until inner pages exist.

Not applicable: Content-specific schemaNo content-specific schema (Article, Product, FAQPage…) detected.

Not applicable · Structured data · Measured on your page

Observed evidence

No content-specific schema (Article, Product, FAQPage…) detected.

Why this matters

Structured data tells machines who published the page and what it describes. Broken markup is ignored outright. This check does not apply to the features observed in this sample.

Recommended fix

If you publish articles, products or FAQs, add the matching schema type — that's what makes rich results (stars, FAQs, prices) possible.

Reference

Headings7Looks good

100/100
Looks good: H1 exists

Looks good · Headings · Measured on your page

Observed evidence

H1 found: "Yang Tang"

Why this matters

Headings are the outline every parser and screen reader follows to find the answer. The inspected source provides this signal.

Recommended fix

Nothing to do here.

Looks good: Single H1

Looks good · Headings · Measured on your page

Observed evidence

Exactly one H1 on the homepage.

Why this matters

Headings are the outline every parser and screen reader follows to find the answer. The inspected source provides this signal.

Recommended fix

Nothing to do here.

Looks good: Heading levels don't skip

Looks good · Headings · Measured on your page

Observed evidence

Heading hierarchy is sequential across 10 headings.

Why this matters

Headings are the outline every parser and screen reader follows to find the answer. The inspected source provides this signal.

Recommended fix

Nothing to do here.

Looks good: H1 has real text

Looks good · Headings · Measured on your page

Observed evidence

H1 reads "Yang Tang".

Why this matters

Headings are the outline every parser and screen reader follows to find the answer. The inspected source provides this signal.

Recommended fix

Nothing to do here.

Looks good: Headings are descriptive

Looks good · Headings · Measured on your page

Observed evidence

10 headings, averaging 2.1 words — descriptive.

Why this matters

Headings are the outline every parser and screen reader follows to find the answer. The inspected source provides this signal.

Recommended fix

Nothing to do here.

Looks good: Content is sectioned with H2s

Looks good · Headings · Measured on your page

Observed evidence

9 H2 section(s) structure the page.

Why this matters

Headings are the outline every parser and screen reader follows to find the answer. The inspected source provides this signal.

Recommended fix

Nothing to do here.

Looks good: Element IDs are unique per document

Looks good · Headings · Measured on your page

Observed evidence

All inspected element IDs are unique within their documents.

Why this matters

Headings are the outline every parser and screen reader follows to find the answer. The inspected source provides this signal.

Recommended fix

Nothing to do here.

ImagesNot applicable

Not measured
Not applicable: Alt text coverageNo visible <img> elements on the audited page (hidden, presentational and 1×1 tracking images are not counted).

Not applicable · Images · Measured on your page

Observed evidence

No visible <img> elements on the audited page (hidden, presentational and 1×1 tracking images are not counted).

Why this matters

Alt text is what a screen reader announces, and what image search and AI systems read in place of the picture. This check does not apply to the features observed in this sample.

Recommended fix

Nothing to change here. Any image you add later needs alt text that describes it, so this check starts scoring then.

Not applicable: Width/height attributesNo visible <img> elements to measure on the audited page.

Not applicable · Images · Measured on your page

Observed evidence

No visible <img> elements to measure on the audited page.

Why this matters

Alt text is what a screen reader announces, and what image search and AI systems read in place of the picture. This check does not apply to the features observed in this sample.

Recommended fix

Nothing to change here. Give future images explicit width and height attributes so the browser can reserve their space.

Not applicable: Modern image formatsNo raster images with a recognizable file extension were found.

Not applicable · Images · Measured on your page

Observed evidence

No raster images with a recognizable file extension were found.

Why this matters

Alt text is what a screen reader announces, and what image search and AI systems read in place of the picture. This check does not apply to the features observed in this sample.

Recommended fix

Nothing to change here. If images arrive later, serve WebP or AVIF alongside PNG/JPEG.

Not applicable: Lazy loadingOnly 0 visible image(s) on the page, too few for lazy loading to change the initial load.

Not applicable · Images · Measured on your page

Observed evidence

Only 0 visible image(s) on the page, too few for lazy loading to change the initial load.

Why this matters

Alt text is what a screen reader announces, and what image search and AI systems read in place of the picture. This check does not apply to the features observed in this sample.

Recommended fix

Nothing to change here. Once the page carries several images, add loading="lazy" to the ones below the fold.

Mobile3Looks good3Informational

100/100
Not applicable: Responsive image markupOnly 0 image(s) on the page, too few for responsive image markup to change what phones download.

Not applicable · Mobile · Measured on your page

Observed evidence

Only 0 image(s) on the page, too few for responsive image markup to change what phones download.

Why this matters

Google indexes the phone rendering, so that is the version being graded. This check does not apply to the features observed in this sample.

Recommended fix

Nothing to change here. When the page carries several images, give them srcset and sizes so phones fetch smaller files.

Not measured: No tiny inline font sizesNo sub-12px inline font sizes detected; stylesheet rules and rendered sizes were not measured.

Not measured · Mobile · Not established

Observed evidence

No sub-12px inline font sizes detected; stylesheet rules and rendered sizes were not measured.

Why this matters

This observation could not be established from the available evidence. Resolve the collection limit or inspect the relevant source before deciding whether a change is needed.

Recommended fix

Check computed font sizes in a browser across mobile widths.

Not applicable: ARIA references point to source elementsNo ARIA ID references found in the sampled HTML.

Not applicable · Mobile · Measured on your page

Observed evidence

No ARIA ID references found in the sampled HTML.

Why this matters

Google indexes the phone rendering, so that is the version being graded. This check does not apply to the features observed in this sample.

Recommended fix

Verify rendered accessibility separately.

Looks good: Viewport meta tag

Looks good · Mobile · Measured on your page

Observed evidence

Viewport configured: "width=device-width, initial-scale=1.0".

Why this matters

Google indexes the phone rendering, so that is the version being graded. The inspected source provides this signal.

Recommended fix

Nothing to do here.

Looks good: Pinch zoom not disabled

Looks good · Mobile · Measured on your page

Observed evidence

The viewport lets users zoom.

Why this matters

Google indexes the phone rendering, so that is the version being graded. The inspected source provides this signal.

Recommended fix

Nothing to do here.

Looks good: Interactive controls have source labels

Looks good · Mobile · Measured on your page

Observed evidence

2 source controls have detectable names. Browser accessibility and CSS visibility were not tested.

Why this matters

Google indexes the phone rendering, so that is the version being graded. The inspected source provides this signal.

Recommended fix

Nothing to do here.

Language2Looks good1Informational

100/100
Not applicable: hreflang syntaxNo hreflang tags — fine for single-language sites.

Not applicable · Language · Measured on your page

Observed evidence

No hreflang tags — fine for single-language sites.

Why this matters

The declared language tells browsers and assistive tech how to read the page and who it is for. This check does not apply to the features observed in this sample.

Recommended fix

Only add hreflang if you publish the same content in multiple languages/regions.

Looks good: html lang attribute

Looks good · Language · Measured on your page

Observed evidence

Language declared: lang="en".

Why this matters

The declared language tells browsers and assistive tech how to read the page and who it is for. The inspected source provides this signal.

Recommended fix

Nothing to do here.

Looks good: Declared language matches content

Looks good · Language · Measured on your page

Observed evidence

Declared language (en) matches detected content language.

Why this matters

The declared language tells browsers and assistive tech how to read the page and who it is for. The inspected source provides this signal.

Recommended fix

Nothing to do here.

Branding1Could be better3Informational

19/100
Could be better: FaviconNo favicon found: no <link rel="icon"> tag, and /favicon.ico returned 404.

Could be better · Branding · Review suggested

Observed evidence

No favicon found: no <link rel="icon"> tag, and /favicon.ico returned 404.

Why this matters

These icons are what appear in browser tabs, bookmarks and search results. It is there, but weaker than this check expects.

Recommended fix

Add one — the browser tab, bookmarks and Google's mobile results all show it. A missing favicon reads as unfinished.

Not measured: Apple touch iconNo apple-touch-icon link.

Not measured · Branding · Not established

Observed evidence

No apple-touch-icon link.

Why this matters

This observation could not be established from the available evidence. Resolve the collection limit or inspect the relevant source before deciding whether a change is needed.

Recommended fix

Add a 180×180 apple-touch-icon so iOS home-screen bookmarks show your logo instead of a screenshot.

Not measured: Web app manifestNo web manifest linked.

Not measured · Branding · Not established

Observed evidence

No web manifest linked.

Why this matters

This observation could not be established from the available evidence. Resolve the collection limit or inspect the relevant source before deciding whether a change is needed.

Recommended fix

Optional, but a manifest.json enables install prompts and better mobile integration.

Not measured: Theme colorNo theme-color meta tag.

Not measured · Branding · Not established

Observed evidence

No theme-color meta tag.

Why this matters

This observation could not be established from the available evidence. Resolve the collection limit or inspect the relevant source before deciding whether a change is needed.

Recommended fix

Add <meta name="theme-color"> to tint the mobile browser UI to your brand color. Small touch, feels polished.

Performance

100/100

Measured from the audited response and its markup. These are source observations, not field Core Web Vitals.

Performance measurements observed during the audit
MeasureThis siteReading
Server response time116 msLooks good: goodThe audit received response headers after 116 ms from one test location.
HTML payload size12 KBLooks good: goodThe page's HTML is a lean 12 KB uncompressed.
No render-blocking head scripts—Looks good: goodNo synchronous render-blocking scripts in <head>.
Inline styles are bounded0.0 KBLooks good: goodInline styles total 0.0 KB.
Script/stylesheet count—Looks good: good4 total script/style resources — reasonable.
Web fonts don't block text—Looks good: goodGoogle Fonts links set a non-blocking font-display value.
HTML served compressed—Looks good: goodHTML is compressed with gzip.
Iframe usage—Looks good: goodNo iframes.
Source HTML weight11.8 KBInformational: measured source, not transferred bytes11.8 KB of HTML on the audited page

From a single automated fetch of the audited page. A quick reading, not a substitute for Lighthouse or field data.

Security

86/100

HTTPS, transport security and the response headers the audited pages send.

Could be better: Frame embedding protectionNo frame-embedding restriction was observed (neither CSP frame-ancestors nor X-Frame-Options).

Could be better · Security · Review suggested

Observed evidence

No frame-embedding restriction was observed (neither CSP frame-ancestors nor X-Frame-Options).

Why this matters

HTTPS protects what visitors send you, and response headers limit what a hostile page can do in their browser. It is there, but weaker than this check expects.

Recommended fix

Send Content-Security-Policy: frame-ancestors 'self' (or 'none', or a list of partner origins), or X-Frame-Options: SAMEORIGIN. It stops other sites from framing your pages to trick visitors into clicking (clickjacking).

Reference
Could be better: X-Content-Type-OptionsX-Content-Type-Options: nosniff is not set.

Could be better · Security · Review suggested

Observed evidence

X-Content-Type-Options: nosniff is not set.

Why this matters

HTTPS protects what visitors send you, and response headers limit what a hostile page can do in their browser. It is there, but weaker than this check expects.

Recommended fix

Add it — one header, stops MIME-sniffing attacks. Most hosts let you set headers in config (vercel.json, netlify.toml, next.config).

Could be better: Content Security PolicyNo Content-Security-Policy detected.

Could be better · Security · Review suggested

Observed evidence

No Content-Security-Policy detected.

Why this matters

HTTPS protects what visitors send you, and response headers limit what a hostile page can do in their browser. It is there, but weaker than this check expects.

Recommended fix

Configure an enforced policy for script and resource origins; use report-only monitoring to prepare changes safely.

Reference
Could be better: Browser feature permissionsNo explicit restriction on sensitive browser features was observed.

Could be better · Security · Review suggested

Observed evidence

No explicit restriction on sensitive browser features was observed.

Why this matters

HTTPS protects what visitors send you, and response headers limit what a hostile page can do in their browser. It is there, but weaker than this check expects.

Recommended fix

Disable unused camera, microphone, or geolocation access using Permissions-Policy.

Not applicable: Declared form submission targetsNo HTML forms were found.

Not applicable · Security · Measured on your page

Observed evidence

No HTML forms were found.

Why this matters

HTTPS protects what visitors send you, and response headers limit what a hostile page can do in their browser. This check does not apply to the features observed in this sample.

Recommended fix

Check JavaScript-generated form transport separately if present.

Not applicable: Password forms avoid URL submissionNo enabled, named password inputs in sampled HTML.

Not applicable · Security · Measured on your page

Observed evidence

No enabled, named password inputs in sampled HTML.

Why this matters

HTTPS protects what visitors send you, and response headers limit what a hostile page can do in their browser. This check does not apply to the features observed in this sample.

Recommended fix

Review authentication forms separately when applicable.

Looks good: Site serves over HTTPS

Looks good · Security · Measured on your page

Observed evidence

Site serves over HTTPS.

Why this matters

HTTPS protects what visitors send you, and response headers limit what a hostile page can do in their browser. The inspected source provides this signal.

Recommended fix

Nothing to do here.

Looks good: HTTP redirects to HTTPS

Looks good · Security · Measured on your page

Observed evidence

http:// permanently redirects to https://./

Why this matters

HTTPS protects what visitors send you, and response headers limit what a hostile page can do in their browser. The inspected source provides this signal.

Recommended fix

Nothing to do here.

Looks good: HSTS header

Looks good · Security · Measured on your page

Observed evidence

HSTS is set: max-age=31556952.

Why this matters

HTTPS protects what visitors send you, and response headers limit what a hostile page can do in their browser. The inspected source provides this signal.

Recommended fix

Nothing to do here.

Looks good: Referrer policy

Looks good · Security · Measured on your page

Observed evidence

No Referrer-Policy is set, so browsers apply their default, strict-origin-when-cross-origin, which sends only the origin to other sites.

Why this matters

HTTPS protects what visitors send you, and response headers limit what a hostile page can do in their browser. The inspected source provides this signal.

Recommended fix

Nothing to do here.

Looks good: No mixed content

Looks good · Security · Measured on your page

Observed evidence

No insecure subresources detected.

Why this matters

HTTPS protects what visitors send you, and response headers limit what a hostile page can do in their browser. The inspected source provides this signal.

Recommended fix

Nothing to do here.

Looks good: Server technology disclosure

Looks good · Security · Measured on your page

Observed evidence

No X-Powered-By disclosure.

Why this matters

HTTPS protects what visitors send you, and response headers limit what a hostile page can do in their browser. The inspected source provides this signal.

Recommended fix

Nothing to do here.

AI answer readiness

100/100

Retrieval signals an answer engine relies on: crawler access, clear entities and answers it can quote. These checks do not measure citations or traffic.

Could be better: llms.txtNo /llms.txt file.

Could be better · AI answer readiness · Review suggested

Observed evidence

No /llms.txt file.

Why this matters

This is what an AI assistant relies on when deciding whether it can quote your page. It is there, but weaker than this check expects.

Recommended fix

Optional: publish an llms.txt index of useful pages. This proposal is not a requirement for Google AI features, and its absence does not reduce the core score.

Reference
Could be better: FAQ/QA schemaNo FAQPage or QAPage schema on any crawled page.

Could be better · AI answer readiness · Review suggested

Observed evidence

No FAQPage or QAPage schema on any crawled page.

Why this matters

This is what an AI assistant relies on when deciding whether it can quote your page. It is there, but weaker than this check expects.

Recommended fix

If the page answers recurring questions, use visible question-and-answer content and matching FAQPage markup. QAPage is for a single question with user-submitted answers. Google FAQ rich results are restricted to eligible authoritative government and health sites; markup does not guarantee AI citations.

Reference
Could be better: Question-style headingsOnly 0% of 9 H2/H3 headings are question-shaped.

Could be better · AI answer readiness · Review suggested

Observed evidence

Only 0% of 9 H2/H3 headings are question-shaped.

Why this matters

This is what an AI assistant relies on when deciding whether it can quote your page. It is there, but weaker than this check expects.

Recommended fix

Phrase key subheadings as the questions users actually ask ("How much does X cost?"). This improves the measured question-heading signal; the audit does not guarantee citations.

Could be better: Definitional openingThe opening paragraph doesn't define what the site/topic is: "Email: Tang.1693@osu.edu…"

Could be better · AI answer readiness · Review suggested

Observed evidence

The opening paragraph doesn't define what the site/topic is: "Email: Tang.1693@osu.edu…"

Why this matters

This is what an AI assistant relies on when deciding whether it can quote your page. It is there, but weaker than this check expects.

Recommended fix

"X is a Y that does Z for W" in the first paragraph gives answer engines a liftable definition of you. Write it once, benefit everywhere.

Could be better: Freshness signalsNo dateModified schema or visible 'updated' dates found.

Could be better · AI answer readiness · Review suggested

Observed evidence

No dateModified schema or visible 'updated' dates found.

Why this matters

This is what an AI assistant relies on when deciding whether it can quote your page. It is there, but weaker than this check expects.

Recommended fix

For content where dates matter, show the actual update date and mirror it in dateModified. Do not invent dates or change them without a substantive update. Missing dates alone do not prove stale content.

Could be better: Consistent brand entityThe site does not declare its name: no og:site_name and no Organization or WebSite schema.

Could be better · AI answer readiness · Review suggested

Observed evidence

The site does not declare its name: no og:site_name and no Organization or WebSite schema.

Why this matters

This is what an AI assistant relies on when deciding whether it can quote your page. It is there, but weaker than this check expects.

Recommended fix

Declare the site's name once in Organization or WebSite schema and in og:site_name, using the same name as the title. Readers, search engines and AI assistants then attribute the pages to one named publisher.

Could be better: Description reads as a liftable summaryNo meta description to serve as a page summary.

Could be better · AI answer readiness · Review suggested

Observed evidence

No meta description to serve as a page summary.

Why this matters

This is what an AI assistant relies on when deciding whether it can quote your page. It is there, but weaker than this check expects.

Recommended fix

Write one declarative sentence stating what the page is/does. Keep it self-contained so readers and crawlers can inspect the page summary; the audit does not measure or guarantee citations.

Could be better: Machine-readable provenance signalsOnly 2 of 4 provenance signal types were found: author, contact.

Could be better · AI answer readiness · Measured on your page

Observed evidence

Only 2 of 4 provenance signal types were found: author, contact.

Why this matters

This is what an AI assistant relies on when deciding whether it can quote your page. It is there, but weaker than this check expects.

Recommended fix

Add the missing author, date, breadcrumb, or contact signal so machines can identify provenance and site structure.

Affected pages (1)

  • https://tang1693.github.io/
Could be better: Markdown copies of pagesNo markdown copy answered at /index.md or /index.html.md.

Could be better · AI answer readiness · Measured on your page

Observed evidence

No markdown copy answered at /index.md or /index.html.md.

Why this matters

This is what an AI assistant relies on when deciding whether it can quote your page. It is there, but weaker than this check expects.

Recommended fix

Publish a clean markdown copy of each key page at /page.md (or /page.html.md). It strips navigation and scripts, so a retriever spends its budget on your content.

Affected pages (1)

  • https://tang1693.github.io/
Reference
Not measured: llms-full.txtNo /llms-full.txt.

Not measured · AI answer readiness · Not established

Observed evidence

No /llms-full.txt.

Why this matters

This observation could not be established from the available evidence. Resolve the collection limit or inspect the relevant source before deciding whether a change is needed.

Recommended fix

Optional companion to llms.txt containing your full content as one markdown file — useful for sites whose pages are JS-heavy.

Reference
Not measured: Authored, dated articlesNo Article/BlogPosting schema found.

Not measured · AI answer readiness · Not established

Observed evidence

No Article/BlogPosting schema found.

Why this matters

This observation could not be established from the available evidence. Resolve the collection limit or inspect the relevant source before deciding whether a change is needed.

Recommended fix

Add Article schema with author and datePublished so the page exposes clear provenance for retrieval. This audit does not measure or guarantee citations or rankings.

Not measured: Citable facts density134 concrete figures across 1139 words.

Not measured · AI answer readiness · Not established

Observed evidence

134 concrete figures across 1139 words.

Why this matters

This observation could not be established from the available evidence. Resolve the collection limit or inspect the relevant source before deciding whether a change is needed.

Recommended fix

Good — keep facts specific and current, and date-stamp them.

Not applicable: Entity identity agrees across signalsThe page declares no site or organization name (no og:site_name and no Organization or WebSite schema name), so there is nothing to compare.

Not applicable · AI answer readiness · Measured on your page

Observed evidence

The page declares no site or organization name (no og:site_name and no Organization or WebSite schema name), so there is nothing to compare.

Why this matters

This is what an AI assistant relies on when deciding whether it can quote your page. This check does not apply to the features observed in this sample.

Recommended fix

Declare the site's name once in Organization or WebSite schema and in og:site_name, and use the same name in the title.

Not measured: Question headings have concise answersNo question-shaped H2/H3 headings were available to pair with answer paragraphs.

Not measured · AI answer readiness · Not established

Observed evidence

No question-shaped H2/H3 headings were available to pair with answer paragraphs.

Why this matters

This observation could not be established from the available evidence. Resolve the collection limit or inspect the relevant source before deciding whether a change is needed.

Recommended fix

Write the questions your audience asks as H2/H3 headings, then answer each in a concise paragraph immediately below it.

Not measured: llms.txt follows the specNo readable /llms.txt, so its structure cannot be checked.

Not measured · AI answer readiness · Not established

Observed evidence

No readable /llms.txt, so its structure cannot be checked.

Why this matters

This observation could not be established from the available evidence. Resolve the collection limit or inspect the relevant source before deciding whether a change is needed.

Recommended fix

Publish llms.txt first — the llms.txt check covers that — then this one verifies the structure.

Reference
Not applicable: Accept: text/markdown negotiationThe homepage answered Accept: text/markdown with text/html; charset=utf-8.

Not applicable · AI answer readiness · Measured on your page

Observed evidence

The homepage answered Accept: text/markdown with text/html; charset=utf-8.

Why this matters

This is what an AI assistant relies on when deciding whether it can quote your page. This check does not apply to the features observed in this sample.

Recommended fix

Optional: return a stripped markdown body when the request asks for text/markdown. Some hosts and CDNs do this for you; a plain HTML answer is not a defect.

Not applicable: Advertised machine interfaces are inspectableNo OpenAPI interface was advertised by sampled HTML.

Not applicable · AI answer readiness · Measured on your page

Observed evidence

No OpenAPI interface was advertised by sampled HTML.

Why this matters

This is what an AI assistant relies on when deciding whether it can quote your page. This check does not apply to the features observed in this sample.

Recommended fix

An API is optional. Add a service-desc link if you already publish a machine-readable API specification.

Looks good: AI crawler access

Looks good · AI answer readiness · Measured on your page

Observed evidence

The audited URL is allowed for evaluated answer-search crawlers.

Why this matters

This is what an AI assistant relies on when deciding whether it can quote your page. The inspected source provides this signal.

Recommended fix

Nothing to do here.

Looks good: Semantic HTML structure

Looks good · AI answer readiness · Measured on your page

Observed evidence

Semantic structure present: main×1, section×9, header×1, footer×1.

Why this matters

This is what an AI assistant relies on when deciding whether it can quote your page. The inspected source provides this signal.

Recommended fix

Nothing to do here.

Looks good: Answers lead the section

Looks good · AI answer readiness · Measured on your page

Observed evidence

Paragraphs get to the point without preamble.

Why this matters

This is what an AI assistant relies on when deciding whether it can quote your page. The inspected source provides this signal.

Recommended fix

Nothing to do here.

Looks good: Content is chunkable

Looks good · AI answer readiness · Measured on your page

Observed evidence

Paragraphs average 3 words, lists present — chunk-friendly.

Why this matters

This is what an AI assistant relies on when deciding whether it can quote your page. The inspected source provides this signal.

Recommended fix

Nothing to do here.

Looks good: Cites external sources

Looks good · AI answer readiness · Measured on your page

Observed evidence

1 outbound reference(s) across crawled pages.

Why this matters

This is what an AI assistant relies on when deciding whether it can quote your page. The inspected source provides this signal.

Recommended fix

Nothing to do here.

AdSense readinessOptional

32/100

Publisher-policy signals, for sites that plan to carry ads. These checks do not affect the overall score or grade, and they do not measure or guarantee AdSense approval.

On its own, this site scores 34/100 for publisher readiness. Ignore this section if you do not run ads.

Needs a fix: Privacy policy pageNo privacy policy page is linked or crawlable.

Needs a fix · AdSense policy · Review suggestedCritical

Observed evidence

No privacy policy page is linked or crawlable.

Why this matters

A publisher review looks for this before it accepts a site. Right now the sampled pages don't provide it.

Recommended fix

Publish an accessible privacy policy that discloses cookies and data use by Google and other third-party ad vendors.

Reference
Could be better: Terms pageNo terms of use page found.

Could be better · AdSense policy · Review suggested

Observed evidence

No terms of use page found.

Why this matters

A publisher review looks for this before it accepts a site. It is there, but weaker than this check expects.

Recommended fix

Consider adding terms that identify the service rules and publisher. This is a transparency heuristic, not an AdSense requirement.

Could be better: About pageNo about page found.

Could be better · AdSense policy · Review suggested

Observed evidence

No about page found.

Why this matters

A publisher review looks for this before it accepts a site. It is there, but weaker than this check expects.

Recommended fix

Add an About page that identifies the publisher, site purpose, and relevant experience. This supports content transparency but is not a standalone AdSense requirement.

Could be better: Clear navigationOnly 2 link(s) inside <nav>/<header> and 0 recognizable primary navigation destination(s).

Could be better · AdSense policy · Review suggested

Observed evidence

Only 2 link(s) inside <nav>/<header> and 0 recognizable primary navigation destination(s).

Why this matters

A publisher review looks for this before it accepts a site. It is there, but weaker than this check expects.

Recommended fix

Add crawlable navigation that lets users reach the site's main publisher content and policy pages.

Reference
Could be better: First-party contact emailContact email does not align with tang1693.github.io: tang.1693@osu.edu.

Could be better · AdSense policy · Review suggested

Observed evidence

Contact email does not align with tang1693.github.io: tang.1693@osu.edu.

Why this matters

A publisher review looks for this before it accepts a site. It is there, but weaker than this check expects.

Recommended fix

Use an address on the publisher's domain when practical so readers can verify the publisher identity. This is a practitioner trust heuristic, not an AdSense requirement.

Not measured: Privacy policy advertising disclosuresA privacy page was not present in the crawl sample, so its disclosures could not be verified.

Not measured · AdSense policy · Not established

Observed evidence

A privacy page was not present in the crawl sample, so its disclosures could not be verified.

Why this matters

This observation could not be established from the available evidence. Resolve the collection limit or inspect the relevant source before deciding whether a change is needed.

Recommended fix

Confirm the policy explains cookies or similar storage, Google or advertising vendors, and third-party data use.

Reference
Not measured: ads.txtNo ads.txt yet.

Not measured · AdSense policy · Not established

Observed evidence

No ads.txt yet.

Why this matters

This observation could not be established from the available evidence. Resolve the collection limit or inspect the relevant source before deciding whether a change is needed.

Recommended fix

When AdSense provides your publisher entry, publish it exactly at /ads.txt and monitor authorization status in your account.

Reference
Not applicable: Article-style content existsNo article/blog-style pages detected among crawled pages.

Not applicable · AdSense policy · Measured on your page

Observed evidence

No article/blog-style pages detected among crawled pages.

Why this matters

A publisher review looks for this before it accepts a site. This check does not apply to the features observed in this sample.

Recommended fix

No action is required solely because articles are absent. For tool or directory sites, make the unique publisher value and explanation crawlable on each relevant screen.

Not measured: Domain age & historyDomain age isn't visible from the site itself.

Not measured · AdSense policy · Not established

Observed evidence

Domain age isn't visible from the site itself.

Why this matters

This observation could not be established from the available evidence. Resolve the collection limit or inspect the relevant source before deciding whether a change is needed.

Recommended fix

Do not use age as a content-quality proxy. Verify ownership and account eligibility in AdSense; Google's general eligibility page publishes no domain-age threshold.

Reference
Not measured: Author bylines on contentNo editorial pages were identified in the crawl sample.

Not measured · AdSense policy · Review suggested

Observed evidence

No editorial pages were identified in the crawl sample.

Why this matters

This observation could not be established from the available evidence. Resolve the collection limit or inspect the relevant source before deciding whether a change is needed.

Recommended fix

Tool and application pages do not need article bylines. Identify the publisher through the site and About page instead.

Not measured: Author or publisher backgroundNo editorial pages were identified, so author-background links were not expected.

Not measured · AdSense policy · Review suggested

Observed evidence

No editorial pages were identified, so author-background links were not expected.

Why this matters

This observation could not be established from the available evidence. Resolve the collection limit or inspect the relevant source before deciding whether a change is needed.

Recommended fix

For non-editorial sites, use the About page and publisher identity signals instead.

Not measured: Latest article has real depthNo article-shaped page was found on this site, so there is nothing to read.

Not measured · AdSense policy · Not established

Observed evidence

No article-shaped page was found on this site, so there is nothing to read.

Why this matters

This observation could not be established from the available evidence. Resolve the collection limit or inspect the relevant source before deciding whether a change is needed.

Recommended fix

Publish articles under a path such as /blog/… and list them in the sitemap. This check then reads the newest one.

Reference
Not measured: Latest article reads as edited workNo article-shaped page was found on this site, so there is nothing to read.

Not measured · AdSense policy · Not established

Observed evidence

No article-shaped page was found on this site, so there is nothing to read.

Why this matters

This observation could not be established from the available evidence. Resolve the collection limit or inspect the relevant source before deciding whether a change is needed.

Recommended fix

Publish articles under a path such as /blog/… and list them in the sitemap. This check then reviews its style signals.

Reference
Not measured: Latest article names an author and a dateNo article-shaped page was found on this site, so there is nothing to read.

Not measured · AdSense policy · Not established

Observed evidence

No article-shaped page was found on this site, so there is nothing to read.

Why this matters

This observation could not be established from the available evidence. Resolve the collection limit or inspect the relevant source before deciding whether a change is needed.

Recommended fix

Publish articles under a path such as /blog/… and list them in the sitemap. This check then looks for its byline and date.

Reference
Looks good: Contact method

Looks good · AdSense policy · Measured on your page

Observed evidence

Contact email found: mailto:Tang.1693@osu.edu

Why this matters

A publisher review looks for this before it accepts a site. The inspected source provides this signal.

Recommended fix

Nothing to do here.

Looks good: Sampled publisher-content coverage

Looks good · AdSense policy · Review suggested

Observed evidence

All 1 editorial pages expose at least 250 publisher words; those pages hold 1128 publisher words in total.

Why this matters

A publisher review looks for this before it accepts a site. The inspected source provides this signal.

Recommended fix

Nothing to do here.

Looks good: Thin page share

Looks good · AdSense policy · Review suggested

Observed evidence

1/1 editorial pages clear the audit's publisher-content triage threshold.

Why this matters

A publisher review looks for this before it accepts a site. The inspected source provides this signal.

Recommended fix

Nothing to do here.

Looks good: No ads on non-content screens

Looks good · AdSense policy · Published platform rule

Observed evidence

No Google ad code detected on sampled non-content screens.

Why this matters

A publisher review looks for this before it accepts a site. The inspected source provides this signal.

Recommended fix

Nothing to do here.

Reference
Looks good: Tool pages expose explanatory content

Looks good · AdSense policy · Measured on your page

Observed evidence

No tool-style screens detected in the crawl sample.

Why this matters

A publisher review looks for this before it accepts a site. The inspected source provides this signal.

Recommended fix

Nothing to do here.

Looks good: Publisher content differs across URLs

Looks good · AdSense policy · Review suggested

Observed evidence

No high publisher-content repetition among 0 substantial sampled page(s).

Why this matters

A publisher review looks for this before it accepts a site. The inspected source provides this signal.

Recommended fix

Nothing to do here.

Show 4 more checks
Looks good: Publisher content exists in source HTML

Looks good · AdSense policy · Measured on your page

Observed evidence

No empty client-rendered publisher shell in the crawl sample.

Why this matters

A publisher review looks for this before it accepts a site. The inspected source provides this signal.

Recommended fix

Nothing to do here.

Looks good: No "coming soon" or placeholder pages

Looks good · AdSense policy · Measured on your page

Observed evidence

No "coming soon", "under construction" or lorem-ipsum text on crawled pages.

Why this matters

A publisher review looks for this before it accepts a site. The inspected source provides this signal.

Recommended fix

Nothing to do here.

Looks good: Site language is AdSense-supported

Looks good · AdSense policy · Measured on your page

Observed evidence

Language "en" is AdSense-supported.

Why this matters

A publisher review looks for this before it accepts a site. The inspected source provides this signal.

Recommended fix

Nothing to do here.

Looks good: Existing ad scripts

Looks good · AdSense policy · Measured on your page

Observed evidence

No competing ad scripts on the page.

Why this matters

A publisher review looks for this before it accepts a site. The inspected source provides this signal.

Recommended fix

Nothing to do here.

Hosting and infrastructure

Public endpoint facts observed at audit time. A CDN or proxy can conceal the origin infrastructure.

Hosting and infrastructure observations
Hostnametang1693.github.io
HostingGitHub Pages
CDN / edgeFastly
IP addresses185.199.108.153, 185.199.111.153, 185.199.110.153, 185.199.109.153, 2606:50c0:8003::153, 2606:50c0:8002::153, 2606:50c0:8000::153, 2606:50c0:8001::153
DNS A185.199.111.153 · 185.199.108.153 · 185.199.109.153 · 185.199.110.153
DNS AAAA2606:50c0:8001::153 · 2606:50c0:8000::153 · 2606:50c0:8003::153 · 2606:50c0:8002::153
DNS CAA{"critical":0,"type":"CAA","issue":"digicert.com"} · {"critical":0,"type":"CAA","issue":"letsencrypt.org"} · {"critical":0,"type":"CAA","issue":"sectigo.com"} · {"critical":0,"type":"CAA","issuewild":"digicert.com"} · {"critical":0,"type":"CAA","issuewild":"letsencrypt.org"} · {"critical":0,"type":"CAA","issuewild":"sectigo.com"}
TLSTLSv1.3TLS_AES_128_GCM_SHA256
Certificate issuerLet's Encrypt / YR1
Certificate valid untilDec 29 23:44:45 2026 GMT
Certificate validationPassed

Website anatomy and diagnostics

Explore links, resources, crawler access and site integrations.

Page architecture

Choose a page to explore its details and connections.

Page content

1128 publisher words

Page structure

html content

Observed discovery

Depth 0 · 0 incoming links

HTTP 200 · 11.8 KB source

Source interactions

2 controls · 0 unnamed

2 script / 2 stylesheet references

Canonical declaration
Not declared
Schema types
None observed
Outgoing links in sampled graph
None observed

Routes: /

Resource origins 3

Resources associated with your website. External resources may belong to the same organization.

  • https://tang1693.github.io/stylesheet, script · 2 references · same origin
  • https://fonts.googleapis.com/stylesheet · 1 references · cross origin
  • https://cdn.jsdelivr.net/script · 1 references · cross origin
Crawler policy by page

Review crawler access for your pages. Search, training and user-triggered services have different purposes; declared access does not guarantee discovery.

Robots policy for every evaluated crawler and sampled page
Crawler / purposePagePolicyMatched directive
Googlebotsearch/allowedDeclared policy for this page.
bingbotsearch/allowedDeclared policy for this page.
OAI-SearchBotsearch/allowedDeclared policy for this page.
PerplexityBotsearch/allowedDeclared policy for this page.
Claude-SearchBotsearch/allowedDeclared policy for this page.
GPTBottraining/allowedDeclared policy for this page.
ClaudeBottraining/allowedDeclared policy for this page.
Google-Extendedtraining and other Google AI uses/allowedDeclared policy for this page.
ChatGPT-Useruser-initiated; robots may not apply/allowedDeclared policy for this page.
Advertised APIs and machine interfaces

No supported machine interfaces were advertised in the sampled HTML. An API or MCP server is optional; undiscovered interfaces remain unknown.

Public DNS and TLS endpoint

tang1693.github.io · observed · 185.199.108.153, 185.199.111.153, 185.199.110.153, 185.199.109.153, 2606:50c0:8003::153, 2606:50c0:8002::153, 2606:50c0:8000::153, 2606:50c0:8001::153

A
185.199.111.153 · 185.199.108.153 · 185.199.109.153 · 185.199.110.153
AAAA
2606:50c0:8001::153 · 2606:50c0:8000::153 · 2606:50c0:8003::153 · 2606:50c0:8002::153
CNAME
Unavailable for this exact hostname
NS
Unavailable for this exact hostname
MX
Unavailable for this exact hostname
CAA
{"critical":0,"type":"CAA","issue":"digicert.com"} · {"critical":0,"type":"CAA","issue":"letsencrypt.org"} · {"critical":0,"type":"CAA","issue":"sectigo.com"} · {"critical":0,"type":"CAA","issuewild":"digicert.com"} · {"critical":0,"type":"CAA","issuewild":"letsencrypt.org"} · {"critical":0,"type":"CAA","issuewild":"sectigo.com"}

TLS: TLSv1.3

Certificate validation passed for the observed endpoint.

Issuer: Let's Encrypt / YR1

Certificate valid until: Dec 29 23:44:45 2026 GMT

PageSpeed measurement

Loading the PageSpeed panel…

Growth resources

Loading growth resources…

Where to take this site next

Follow-on work suggested by the observations above.

  1. 01

    Fix the fundamentals first

    Your top fixes list is the priority order — clear the red items before creating more content.

  2. 02

    Re-run the combined audit after each batch of fixes

    Re-run after fixes to see which checks changed; score bands are guidance, not a guarantee of ranking, traffic, or approval.

  3. 03

    Fix AdSense policy signals

    Make policy pages, publisher disclosures and substantial content reachable before applying. This audit cannot predict approval.

  4. 04

    Fix social previews next

    Broken previews make shared links harder to interpret. Add stable Open Graph metadata and an image URL; this audit does not measure resulting clicks or traffic.

Apply the recommended fixes

Hand the complete evidence to a coding agent, or take the report with you.

Open in ChatGPT Open in Grok Open in Perplexity

Report notes

  • 01This report covers the sampled public pages listed above. Other pages may have different results.
  • 02Browser-rendered content, private backend systems and authenticated experiences may require a separate review.
  • 03Unavailable observations are identified in the report. Results do not guarantee rankings, citations, security, accessibility or advertising approval.
Pages included in this report
  • https://tang1693.github.io/