Emergency Hotline: Call 1-844-363-1423 (United We Dream Hotline)
ICE Encounter

Why Schema Matters for Advocacy

Schema.org structured data enables search engines to:

  • Display rich results (FAQ accordions, how-to steps)
  • Power voice search responses for crisis queries
  • Understand the authority and freshness of legal content
  • Generate knowledge panels for your organization

Recommended Schema Types

Content Type Schema Type Rich Result
Know Your Rights guides Article Article rich result
Step-by-step procedures HowTo Numbered steps in SERP
Q&A content FAQPage Accordion drop-downs
Legal aid directory LegalService Business information
State/government info GovernmentService Service area display
Downloadable resources DigitalDocument Download indicators
Crisis summaries Speakable Voice assistant reading

JSON-LD Implementation

Why JSON-LD?

JSON-LD (JavaScript Object Notation for Linked Data) is the preferred format because:

  • Injected in <head> without cluttering HTML
  • Easier to maintain than microdata
  • Better support for nested schemas
  • Recommended by Google

Basic Structure

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Article",
  "headline": "Know Your Rights at Immigration Checkpoints",
  "description": "...",
  "author": {...},
  "publisher": {...},
  "datePublished": "2026-03-24",
  "dateModified": "2026-03-24"
}
</script>

Schema Templates

Article Schema (Know Your Rights Guides)

{
  "@context": "https://schema.org",
  "@type": "Article",
  "headline": "Know Your Rights: What to Do If ICE Comes to Your Door",
  "description": "A complete guide to your constitutional rights during an encounter with ICE at your home.",
  "image": "https://example.org/assets/images/kyr-home.jpg",
  "author": {
    "@type": "Organization",
    "name": "ICE Advocacy",
    "url": "https://example.org"
  },
  "publisher": {
    "@type": "Organization",
    "name": "ICE Advocacy",
    "logo": {
      "@type": "ImageObject",
      "url": "https://example.org/assets/images/logo.png"
    }
  },
  "datePublished": "2026-03-24",
  "dateModified": "2026-03-24",
  "mainEntityOfPage": {
    "@type": "WebPage",
    "@id": "https://example.org/know-your-rights/home-raids/"
  },
  "inLanguage": "en-US",
  "isAccessibleForFree": true
}

HowTo Schema (Procedural Guides)

Triggers numbered step display in search results:

{
  "@context": "https://schema.org",
  "@type": "HowTo",
  "name": "How to Respond If ICE Comes to Your Workplace",
  "description": "Step-by-step guide for workers during immigration enforcement at work.",
  "step": [
    {
      "@type": "HowToStep",
      "name": "Stay calm",
      "text": "Remain calm and do not run. Running may be perceived as suspicious."
    },
    {
      "@type": "HowToStep",
      "name": "Exercise your right to remain silent",
      "text": "You have the right to remain silent. Say: 'I am exercising my right to remain silent.'"
    },
    {
      "@type": "HowToStep",
      "name": "Do not sign anything",
      "text": "Do not sign any documents without speaking to an attorney first."
    },
    {
      "@type": "HowToStep",
      "name": "Document what happens",
      "text": "If safe, note badge numbers, agency, and what occurred."
    }
  ],
  "totalTime": "PT5M"
}

FAQPage Schema (Q&A Content)

Generates accordion rich results:

{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "Do I have to open my door for ICE?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "No. You are not required to open your door unless agents have a judicial warrant signed by a judge. An ICE administrative warrant (Form I-200 or I-205) does not give them the right to enter without your consent."
      }
    },
    {
      "@type": "Question",
      "name": "What is the difference between a judicial warrant and an ICE warrant?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "A judicial warrant is signed by a judge and allows entry. An ICE administrative warrant is signed by an immigration officer and does NOT give the right to enter your home without consent."
      }
    }
  ]
}

LegalService Schema (Legal Aid Directory)

{
  "@context": "https://schema.org",
  "@type": "LegalService",
  "name": "California Immigration Legal Aid",
  "description": "Free and low-cost immigration legal services in California.",
  "url": "https://example.org/resources/legal-documents/california/",
  "serviceType": "Immigration Law",
  "areaServed": {
    "@type": "State",
    "name": "California"
  },
  "provider": {
    "@type": "Organization",
    "name": "ICE Advocacy"
  },
  "isAccessibleForFree": true
}

Speakable Schema (Voice Search)

Critical for crisis content - tells voice assistants which text to read aloud:

{
  "@context": "https://schema.org",
  "@type": "Article",
  "headline": "Your Rights If ICE Is At Your Door",
  "speakable": {
    "@type": "SpeakableSpecification",
    "cssSelector": [".voice-summary", ".key-rights-list"]
  }
}

In your HTML, mark speakable sections:

<div class="voice-summary">
  You do not have to open your door. Ask if they have a warrant signed
  by a judge. You have the right to remain silent.
</div>

11ty Implementation

Automatic Schema Generation

In your base layout (_includes/layouts/base.njk):

{% if schema_type == 'Article' %}
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Article",
  "headline": "{{ title }}",
  "description": "{{ description }}",
  "author": {
    "@type": "Organization",
    "name": "{{ site.title }}"
  },
  "datePublished": "{{ date | date: '%Y-%m-%d' }}",
  "dateModified": "{{ last_updated | date: '%Y-%m-%d' }}"
}
</script>
{% elif schema_type == 'FAQPage' %}
...
{% endif %}

Frontmatter for Schema

---
title: "Know Your Rights at Checkpoints"
schema_type: "Article"
# For FAQPage, add questions array:
questions:
  - question: "Do I have to answer questions at a checkpoint?"
    answer: "You have the right to remain silent..."
# For HowTo, add steps array:
steps:
  - name: "Stay calm"
    text: "Remain calm and do not exit your vehicle."
---

Validation and Testing

Tools

Tool URL Purpose
Google Rich Results Test search.google.com/test/rich-results Validate schema, preview rich results
Schema.org Validator validator.schema.org Check syntax compliance
Search Console search.google.com/search-console Monitor rich result errors

Common Errors

Error Cause Fix
Missing required field Incomplete schema Add required properties
Mismatch with visible content Schema doesn't match page Ensure exact text match
Invalid JSON syntax Typos, missing commas Validate with JSON linter
Nested array errors Improper structure Check array formatting

Schema Checklist

Before Publishing

  • [ ] Schema type matches content type
  • [ ] All required fields present
  • [ ] dateModified reflects actual last update
  • [ ] Text in schema matches visible page content
  • [ ] Validated with Rich Results Test
  • [ ] No Search Console errors for page

Ongoing Monitoring

  • [ ] Weekly Search Console review
  • [ ] Check rich result appearance in SERPs
  • [ ] Update dateModified when content changes
  • [ ] Verify FAQ/HowTo schema still displays

Next Steps

  1. Capture featured snippets - Content formatting for Position Zero
  2. Implement local SEO - State and city schema
  3. Configure technical SEO - Core Web Vitals, sitemaps
Legal Disclaimer

This website does not provide legal advice. The information provided on this site is for general informational and educational purposes only. It does not create an attorney-client relationship.

Information on this website may not be current or accurate. Immigration law is complex and varies by jurisdiction and individual circumstances. Always consult with a qualified immigration attorney for advice specific to your situation.

Neither ICE Encounter, its developers, partners, nor any contributors shall be liable for any actions taken or not taken based on information from this site. Use of this site is subject to our Terms of Use and Privacy Policy.