volar.finance
Volar
5 failed · 7 warnings · 15 passed
Audited Sun, 12 Jul 2026 15:15:41 GMT · https://volar.finance/
Meta & Head
18.1/25
Title, description, canonical, social tags — what search engines read first.
Open Graph tagsmedium impactlow effort
No Open Graph tags found
Open Graph tags control how your page looks when shared on Facebook, LinkedIn, Slack, WhatsApp, and most chat apps; without them, links render as a bare URL or with guessed text, and far fewer people click through. Add four meta tags to <head>: og:title, og:description, og:url, and og:image — an image around 1200x630 pixels works well across platforms. Use absolute https:// URLs for og:image and og:url; relative paths are the most common reason preview images silently fail to appear.
Title taghigh impactlow effort
<title> is "Volar" (5 characters)
Search engines truncate titles past roughly 60 characters and often rewrite very short or vague ones, so the message you wrote may never actually be shown. Rewrite the title to 30–60 characters that lead with the primary keyword and end with your brand, e.g. "Merge PDF Files Online Free | YourBrand". Front-load the important words, since truncation always cuts from the end. Don't pad a short title with repeated keywords just to hit the range — clarity wins clicks, not length.
Canonical URLmedium impactlow effort
No <link rel="canonical"> found
When the same page is reachable at several URLs — tracking parameters, trailing-slash variants, http vs https — search engines may split ranking signals across the duplicates. A canonical tag names the one version that should get all the credit. Add <link rel="canonical" href="https://www.example.com/page/"> to the <head>, pointing at the page's preferred absolute URL. Double-check it's self-referencing on the primary version: a canonical that points at the wrong page can quietly de-index the right one.
Twitter card taglow impactlow effort
No twitter:card meta tag found
X (Twitter) layers its own card markup on top of Open Graph, and without a twitter:card tag your shared links may render as plain text instead of a large image preview. Add <meta name="twitter:card" content="summary_large_image"> alongside your Open Graph tags; X will fill in the title, description, and picture from og:title, og:description, and og:image. Keep og:image an absolute URL — a relative or missing image is the usual reason cards show up without a picture.
5 passing checks
- Meta descriptionMeta description is "Volar — wrap any asset, farm volatility, hold an earn token whose backing only ratchets up. Open finance for everyone." (118 characters)
- Viewport meta tagViewport is "width=device-width, initial-scale=1.0, viewport-fit=cover"
- Character encoding declaredCharacter encoding is declared
- FaviconNo <link rel="icon">, but /favicon.ico responds with 200
- Page allows indexingNo restrictive robots meta tag
Content & Structure
5.8/25
Headings, copy depth, images, structured data, internal linking.
Single H1 headinghigh impactlow effort
0 h1 headings found
The h1 is the visible headline of the page and one of the clearest signals to search engines of what it's about; with none present, engines lean on surrounding text and may misread the topic. Add exactly one h1 near the top that states the main topic in plain language and includes the primary keyword, e.g. <h1>Merge PDF Files Online</h1>. Don't fake it with a styled <div> — the semantic tag itself is what crawlers and screen readers actually read.
Word counthigh impactlow effort
1 words of visible text
Under 300 words, search engines typically classify a page as thin content, and thin pages rarely rank for anything competitive. Decide which query this page should answer, then write substantive copy — aim for 600+ words covering what it is, how it works, common questions, and concrete examples. If the page genuinely has nothing more to say, merge it into a stronger related page with a 301 redirect rather than padding it with filler that helps no one.
Internal linkingmedium impactmedium effort
0 internal, 0 external links
Search engines discover and rank your pages by following internal links; a page with none is a dead end for crawlers and visitors alike. Add contextual links to related pages on your own site — navigation, related-content sections, and in-body links all count. Aim for at least a handful of relevant internal links per page.
JavaScript-dependent contenthigh impacthigh effort
visible text ~75 chars in the initial HTML
The initial HTML contains very little visible text, so anything that fetches the page without executing JavaScript — some crawlers, social preview scrapers, and first-pass indexing — sees a nearly empty document. Make sure the page's real copy is delivered in the HTML itself, via server-side rendering, static generation, or simply authoring the content in markup instead of injecting it client-side. Check with "view source": if the paragraphs you care about aren't in the raw HTML, search engines can't be counted on to see them.
Structured data (JSON-LD)medium impactmedium effort
No JSON-LD structured data blocks found
Structured data makes your listing eligible for rich results — star ratings, FAQs, breadcrumbs, product prices — which occupy more space on the results page and draw more clicks than plain blue links. Add a <script type="application/ld+json"> block with a schema.org type that matches the page: Organization or WebSite for a homepage, Article for posts, Product for product pages. Only mark up content actually visible on the page — markup for invisible content violates Google's guidelines and can earn a manual action.
1 passing check
- HTML lang attribute<html lang="en">
Technical
21.6/25
HTTPS, redirects, robots, sitemap, speed, crawlability.
XML sitemap availablemedium impactlow effort
sitemap.xml exists but is not valid XML
Your sitemap exists but isn't valid XML, so search engines reject the whole file and you get none of its discovery benefit — worse than having no sitemap, because you probably believe it's working. Regenerate it with your framework's built-in generator or a sitemap library rather than hand-editing; unescaped ampersands in URLs (& instead of &) are the most common breakage. Validate before deploying, and check the Sitemaps report in Google Search Console afterwards — it surfaces parse errors explicitly.
Response compression enabledlow impactlow effort
no content-encoding header
This HTML is served uncompressed, so every visitor downloads far more bytes than necessary — text compresses extremely well, and the savings directly speed up first render on slow connections. Enable Brotli or gzip on your server or CDN: in nginx it's "gzip on;" (or the brotli module), in Apache it's mod_deflate via .htaccess, and on most CDNs it's a single toggle. Make sure compression covers all text types (HTML, CSS, JS, JSON, SVG), but skip already-compressed images — recompressing them wastes CPU for no gain.
Missing pages return 404low impactlow effort
missing paths return a non-404 status (soft 404)
URLs that don't exist on your site return a success status instead of 404 — search engines call these soft 404s, keep recrawling them, and may index the useless placeholder pages, wasting crawl budget that should go to real content. Configure your server or framework to return an actual 404 status (or 410 for permanently removed content) along with your error page. The classic mistake is serving a friendly "page not found" template with a 200 status — crawlers ignore the visible message; only the status code counts.
9 passing checks
- Served over HTTPSfinal URL uses https://
- HTTP redirects to HTTPShttp:// redirects to https://
- No mixed content0 http:// subresource references
- Short redirect chainno redirects; URL resolves directly
- robots.txt present and permissiverobots.txt exists and allows crawling
- Fast time to first byte199 ms
- Reasonable HTML size978 B
- www and non-www resolve consistentlywww and non-www converge on the same host
- HTML5 doctype<!DOCTYPE html> present
Performance
Core Web Vitals scoring via Google PageSpeed is coming soon.
Share your score
Embed this live badge on your site — it updates whenever the audit is re-run.