PC Slower Than It Used to Be?
A free scan shows the junk files, broken settings and background clutter dragging Windows down - then fixes them in one click.Free scan · Windows 10 & 11Outdated Drivers Are Slowing You Down
One free scan finds every outdated or missing driver and matches the right update for your exact hardware.Free scan · exact hardware matchAdd Open Graph tags to the HTML <head> that PHP returns for each page. The markup is the same whether the website is hosted in India or elsewhere; hosting location matters only if the host, CDN, firewall, or access rules prevent social crawlers from reaching the page or its image.
Which Open Graph tags to add
The Open Graph Protocol defines four required properties: og:title, og:type, og:image, and og:url. Put them in the document head. For a useful preview, also add og:description and og:image:alt; og:site_name is another useful optional property. See the Open Graph Protocol.
As an Amazon Associate I earn from qualifying purchases.
og:title: the page title you want shown in a share preview.og:type: the kind of object, such aswebsiteorarticle.og:url: the page’s canonical, absolute URL—the permanent identifier for the object.og:image: an absolute URL to the image intended for the preview.og:description: a concise description of that specific page.og:image:alt: a text description of the image.
Add the tags in a PHP head template
Prepare metadata before the shared head template outputs anything. Use values from your routing or content layer so each page gets its own title, description, canonical URL, and image where appropriate. This example shows the output pattern; replace the example values with your site’s actual data.
Recommended Free Tools
<?php
$pageTitle = 'Example page';
$pageDescription = 'A concise description of this page.';
$canonicalUrl = 'https://example.in/example-page';
$imageUrl = 'https://example.in/images/example-share.jpg';
$escape = static fn (string $value): string => htmlspecialchars(
$value,
ENT_QUOTES | ENT_SUBSTITUTE,
'UTF-8'
);
?>
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title><?= $escape($pageTitle) ?></title>
<meta property="og:title" content="<?= $escape($pageTitle) ?>">
<meta property="og:type" content="website">
<meta property="og:url" content="<?= $escape($canonicalUrl) ?>">
<meta property="og:image" content="<?= $escape($imageUrl) ?>">
<meta property="og:image:alt" content="Share image for <?= $escape($pageTitle) ?>">
<meta property="og:description" content="<?= $escape($pageDescription) ?>">
</head>
<body>
htmlspecialchars() escapes values for the HTML attribute context in this example; ENT_QUOTES | ENT_SUBSTITUTE and UTF-8 are used explicitly. Consult the PHP htmlspecialchars manual for its behavior and options. Escaping does not make an untrusted URL a suitable canonical URL: generate canonical URLs from trusted site configuration rather than an unchecked request host.
#1 Best Overall
Choose static or page-specific values
- Static template values: reasonable only when every page genuinely shares the same metadata. It is simple to maintain, but can produce stale or inaccurate previews if pages differ.
- Route or content-driven values: use when pages need distinct previews. It improves page-specific accuracy, but centralize the output so the shared layout does not emit duplicate tags.
Choose website for a general site page or article for an article when that best describes the page. Keep one deliberate value for each property: when consumers encounter conflicting repeated values, the protocol says the first tag from top to bottom is preferred.
Validate the rendered page and image
- Request a representative URL from the deployed site and inspect its raw HTML response—not just the PHP template—to confirm the tags appear inside
<head>. - Check multiple routes. Confirm that titles, descriptions, canonical URLs, and image URLs are appropriate to each page and that no duplicate or stale tags are emitted.
- Make sure
og:urlandog:imageare absolute URLs and publicly reachable by the intended social crawler. - Submit the page URL to a social preview parser and inspect the extracted title, description, image, and URL. The protocol page identifies Facebook Object Debugger as a parser and debugger; its current availability and interface may change.
For a quick visual check of a page as rendered, a screenshot can help, but it does not replace inspecting the raw HTML or using a social parser to verify extracted metadata.
Rank #2
Troubleshoot missing or incorrect previews
Tags are absent from the returned HTML
The template may not be included for that route, or the metadata may be assigned after the head has already been printed. Set values before rendering the shared head and inspect the deployed response for the affected URL.
The preview shows another page’s title or description
Check whether the site emits static values, duplicate tags, or route data from the wrong page. Ensure there is one intended value per property and inspect the first occurrence, since consumers may prefer it when values conflict.
The image does not load
Verify that the exact absolute image URL in og:image works publicly and that the host, CDN, firewall, or access policy does not block the intended crawler. The available information does not identify a particular Indian hosting provider or crawler configuration, so this must be checked on the actual deployment.
The page works in a browser but a crawler cannot fetch it
A browser success does not establish that an external crawler can access the same URL. Check the site’s own access controls and any CDN or firewall rules for the intended crawler, then retest with a social preview parser.
Rank #4
HTML output appears to need rewriting after the fact
Assemble the metadata before the head template prints. PHP output buffering is not inherently required to add these tags; the PHP manual describes buffering and notes that implicit flushing sends output after each output block. See PHP output-control configuration.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
Or skip the browser setup
To capture a page visually while checking your deployed result, ScreenshotNeo offers a screenshot API and MCP server. A screenshot is a visual aid; use the raw response and a social preview parser to verify Open Graph extraction.
Quick Recap
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://example.in/example-page -o shot.webp
See the ScreenshotNeo documentation for API details. ScreenshotNeo removes cookie banners, newsletter popups, and chat widgets before capture; bot checks, blank pages, and failed loads are never billed. Its MCP server lets AI agents take screenshots. The Free plan includes 1,000 screenshots per month with no card; paid plans start at $5 for 3,000. Learn about ScreenshotNeo, or sign up free for 1,000 screenshots a month with no card.
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




