Page SEO settings
Set Meta title, Meta description, and OG image under Pages → Edit → Page Settings so search and social previews match your brand—ArtInStack also adds JSON-LD and sitemap entries on published pages unless you enable Hide from search engines. Optionally ping search engines from Site controls when public pages change.
Page Settings controls how each page is described to search engines and social networks. ArtInStack also adds structured data (JSON-LD) on several public URLs and image licensing metadata on photo detail pages—those are separate from the fields in this tab but matter for discovery and Google Image Search.
Set page-level SEO under Pages → Edit → Page Settings. For portfolio-wide photo indexing and map visibility, see Portfolio geo visibility and impact maps and Photo detail pages.
What you control on each page (Page Settings → SEO card)
| Field | What it does on your live site |
|---|---|
| Meta title | Browser tab title and primary search headline (<title>). Falls back to page title + site name if empty. |
| Meta description | Summary in search snippets (<meta name="description">). |
| Canonical URL | Optional override for the canonical link tag (advanced—leave blank unless you use a separate canonical domain strategy). |
| OG image | Image used when the page is shared on social networks (Open Graph). |
| Hide from search engines | Adds noindex / nofollow robots meta so crawlers should not index this page; page is also omitted from your site sitemap.xml. |
The editor shows character hints (~60 for title, ~160 for description). Save Page after changes, then Publish if the page should be public.
Page title (in Page Details) is your dashboard label; Meta title is what search and social systems prefer for the public URL.
Sharing a page link
When someone pastes your public page URL into Slack, iMessage, LinkedIn, or another app that reads a link preview, the card uses your OG image when one is set. If OG image is empty, a public portfolio cover on that page can be used instead (the collection must be public and have a cover). There is no fallback to a random image from the page body.
Hide from search engines does not turn off the chat preview. Search visibility and link previews are separate.
After you Publish, test the live URL on your custom domain (or public site host)—not the editor or a preview link. Paste it into Slack or a share debugger and confirm title and image.
Optional: ping search engines when you publish
Sitemap and Hide from search engines still decide what can be indexed. Separately, you can turn on Notify search engines when public pages change under Settings → Privacy & security → Site controls.
When that toggle is on, ArtInStack pings participating search engines after you change a public page, post, or public portfolio gallery. Photo detail URLs and product pages are not pinged. The toggle is off by default. Turning it off later does not un-index existing URLs.
Pings do not replace submitting sitemap.xml in Google Search Console. Details: Site controls.
What ArtInStack adds automatically (beyond Page Settings)
These ship on your published photographer site (subdomain or custom domain). You do not paste JSON-LD by hand. JSON-LD is for search engines (and image licensing on photo URLs). It is separate from link previews in messaging and social apps.
Standard pages (home + editor-built pages)
| Signal | Where it appears |
|---|---|
| HTML meta tags | <title>, description, canonical URL, Open Graph image (when set), robots when hidden |
| BreadcrumbList JSON-LD | In-page <script type="application/ld+json"> on each public page |
| Organization JSON-LD | On your homepage only (site name + URL) |
| Sitemap | https://yoursite.example/sitemap.xml lists published pages; includes image entries when a page has an OG image |
Interior pages do not currently emit a full WebPage schema block—breadcrumbs + meta tags are the main page-level signals.
Blog posts
Blog posts use their own SEO fields (title, description, OG image) and additionally publish Article + BreadcrumbList JSON-LD when the post is published and not hidden from search.
Photo detail pages (portfolio images)
When Enable Page View is on for a collection, each public photo URL can include ImageObject JSON-LD with:
| JSON-LD field | Purpose |
|---|---|
contentUrl / url | Image file and photo page URL |
license | Link to your license text on /terms#… (from your legal templates) |
acquireLicensePage | Same photo page (where visitors can license or buy) |
copyrightNotice | © line with your business/name (maps to IPTC Copyright Notice) |
creditText | Credit line for image search (maps to IPTC Credit Line) |
license | URL to your license text on /terms#… (maps to IPTC Web Statement of Rights) |
acquireLicensePage | Photo detail URL where visitors can license or buy |
creator | Your studio as Organization |
| EXIF-related fields | Camera, lens, ISO, etc. when EXIF exists on the file |
Yes — on each public photo detail page, ArtInStack injects this ImageObject JSON-LD in the page HTML (see photo/[id]/page.tsx). That is how licensing and attribution are declared to Google and other crawlers today.
Two things are easy to confuse:
| Mechanism | Photo detail page? |
|---|---|
IPTC-style fields in JSON-LD (license, copyrightNotice, creditText, creator) | Yes — built from your profile, license templates, and media/portfolio settings |
| IPTC tags embedded inside the image file (JPEG/WebP/RAW bytes on upload) | No — not implemented in the processing pipeline; the delivered WebP/derivative is not re-written with Sharp IPTC blocks |
If a visitor downloads the image file, rights info travels with the file only if they embedded IPTC before upload or you use external tooling. For search and licensable-image discovery, rely on the live photo URL JSON-LD and your Terms page.
Configure photo detail and indexing: Photo detail pages. License copy: Media → Documents and public /terms on your site.
Impact map blocks
Map blocks on pages use portfolio geo settings; they do not add a separate page-level schema type. See Add an Impact map to a page.
How data flows (pages you edit)
[Page Settings: Meta title, description, OG image, Hide from search]
→ Save Page → Publish
→ Live HTML <head> (title, description, og:image, robots, canonical)
→ BreadcrumbList JSON-LD in page body
→ Listed in sitemap.xml (unless hidden)
[Portfolio photo detail — separate settings]
→ ImageObject JSON-LD on /photo/{id} URLs
→ License URL → /terms#{license_type}
Implementation steps
- Open Pages → Edit → Page Settings.
- Fill Meta title and Meta description for homepage, about, contact, and any landing pages you care about.
- Set OG image on homepage and key campaign pages (1200×630-style assets work well).
- Turn on Hide from search engines only for thank-you pages, drafts you must keep published internally, or duplicate thin pages.
- Save Page → Publish → open the live URL in a private window.
- Optional: in Settings → Privacy & security → Site controls, turn on Notify search engines when public pages change if you want participating engines pinged on later public page, post, or portfolio-gallery updates.
For portfolio photos: open Portfolio Settings → Visibility & SEO and confirm Hide from search engines matches your intent.
Verify on your published site
Use the live or preview URL after save—not only the editor canvas.
1. View Page Source (fastest)
- Open the public page (e.g.
https://yourstudio.example/about). - View Page Source (browser menu) or DevTools → Elements →
<head>. - Confirm:
<title>matches your Meta title (or sensible fallback).<meta name="description" content="…">matches your text.<meta property="og:image" …>appears when you set OG image.<meta name="robots" content="noindex, nofollow">appears only when Hide from search engines is on.
2. Rich Results Test (structured data)
- Go to Google Rich Results Test (or Schema Markup Validator).
- Enter your homepage URL → expect BreadcrumbList and Organization (Organization may show as non-rich “valid” structured data).
- Enter an interior page URL → expect BreadcrumbList.
- Enter a photo detail URL (with Page View enabled) → expect ImageObject with
license,copyrightNotice, and related fields when configured.
A “No rich results detected” message on a normal about page is common—meta + breadcrumbs still help indexing.
3. Social preview
Paste the published custom-domain URL into Slack or a share debugger (Facebook Sharing Debugger, LinkedIn Post Inspector, or similar). Confirm the image and title match Sharing a page link above.
4. Sitemap and Search Console
- Open
https://yourstudio.example/sitemap.xmlin the browser. - Confirm important page URLs appear and hidden pages do not.
- In Google Search Console, submit the sitemap property for your domain and request indexing for key URLs after major SEO changes.
- Search-engine pings from Site controls (if enabled) are extra—they do not replace the sitemap.
Re-indexing can take days or weeks—that delay is normal.
Troubleshooting
| Issue | What to check |
|---|---|
| Title in source does not match Meta title | Save Page and republish; hard-refresh; confirm you edited the published page |
| Chat or social preview has no image | Set OG image, or embed a public portfolio that has a cover; publish; test the live host, not the editor |
| Page missing from sitemap | Hide from search engines may be on; page must be published |
| No ImageObject on a photo URL | Enable Page View in portfolio settings; photo must be reachable on your public site |
| License link 404 in JSON-LD | Publish license templates; open /terms on your live site |
| Duplicate titles across pages | Customize meta title per URL—especially homepage, about, contact |
Related guides
- Page settings and overrides — slug, templates, chrome
- Site controls — default hide-from-search and optional search notify
- Photo detail pages — per-photo URLs, EXIF, sharing
- Portfolio geo visibility and impact maps — map pins and privacy
- Legal documents and templates — license text behind
/termslinks
Verifying your setup
- Homepage Meta title, Meta description, and OG image saved and visible in page source on the live URL.
- At least one interior page has unique meta fields.
sitemap.xmllists published pages you expect indexed.- One photo detail URL shows ImageObject JSON-LD in Rich Results Test (if you use Page View).
