Markup Your Site

If you have a website, markup can improve how you reach your target audience. It can improve how search engines (like Google, Bing, Yahoo, etc.) show your website, resources, and services to your potential audience. markup is code to put on your website’s backend, which tells search engines important information about who they should show your website to. The community is a non-profit group (founded originally by leading search engine companies). It defines the various terms and structures that organizations can use to mark up their websites. The markup represents information about:

  • Organizational Details: Who your organization is, and what makes you authoritative on certain topics
  • Issue Areas: What kinds of problems and questions you can help people with
  • Jurisdictions: What jurisdictions and geographic areas you serve
  • Demographic Groups: What specific demographics of people you serve
  • Services and Events: What specific hotlines, intake channels, clinics, and other events you offer

You can use the standard markup code to represent this information in ways that search engines can understand automatically. This markup code should improve how often your website is shown to people asking about legal issues, in your target jurisdictions and demographics. markup can complement other search engine optimization (SEO) strategies your group might already be using. To implement markup, you can follow the standards — and use the markup-creation tool that our Lab is building with the support of a Legal Services Corporation Tech Innovation Grant, in collaboration with many legal aid and technologist stakeholders.

We recommend that you use a standard approach to marking up your website pages, using markup standards here. We have a list of our standard terms, as well as a tool to help you create them by filling out a form.

Our proposal draws from other civic and government service providers’ use of For example, the W3C group has a CivicServices schema plan  (that integrates a proposal from the Civic team), the UK government’s Gov.UK site has a plan, and the Dept. of Veterans Affairs had a plan.

We have taken their broad set of possible terms, and defined which ones legal organizations can use to best represent themselves.  This standard is being set by a working group of legal aid organization, website administrators, and technologists have been creating and vetting this way of marking up legal aid and statewide portal websites. These standards can help you decide which of the terms to use, when representing your organization and service details.

See examples of our most recent markup here at our Github repository. These show how a legal aid group’s site can be marked up with schema.

Information to markup Markup term to use What data should be used to populate the markup term? And what does an example look like?
Name of organization that provides a legal help service  Text

“name”: “Legal Services of North Florida”

Alternate Name with an acronym or other known name Text

 “alternateName”: “LSNF”

Description of the organization and what kinds of services you provide, and audiences you serve — as a paragraph of text  Text

 “description”: “LSNF is a not-for-profit legal services organization serving only low-income individuals and families across Florida’s central and western panhandle. LSNF’s priority areas are cases involving Family Law, Housing, Public Benefits, Employment, Education, and Health Care issues. It does not help with traffic tickets, car injuries, or defending criminal actions.”,

Logo of the organization as an image file  URL to Image file

 “logo”: “”

Image of organization that can show the building, people, services, or other representative image of the org URL to Image file

 “image”: “”

Type of organization, according to pre-set Schema terms

in combination with one of the following,

Multiple choice: Choose from pre-defined categories including Government organization, Legal Service, Courthouse, or NGO. Be sure to also tag as a “Service” so that the other properties will make sense.

 “@type”: [




Part of another organization, to specify if this organization is part of a larger one  Text with name of organization
Website of organization  URL

 “url”: ““,

Main Address of physical location of the organization. This includes multiple sub-parts:

  • streetAddress
  • addressLocality (city)
  • addressRegion (state)
  • postalCode (zip)  Text

 “address”: {

   “@type”: “PostalAddress”,

   “streetAddress”: “2119 Delta Boulevard”,

   “addressLocality”: “Tallahassee”,

   “addressRegion”: “FL”,

   “postalCode”: 32303


Email by which the organization can be contacted, and wants the general public to know about  Email address

“email”: “”,

Jurisdiction that this organization serves, defined by County  Text or OCD-IDs

 “areaServed”: {

   “@type”: “AdministrativeArea”,

   “name”: [“Bay County, FL”, “Calhoun County, FL”, “Holmes County, FL” ]


Phone number by which a member of the public can reach the person  Text (phone)

 “telephone”: “(850) 385-9007”,

Opening hours when a person can visit or contact the organization  Text + Pre-set time format

  “hoursAvailable”: [

   “Mo 09:00-17:00”,

   “Tu 09:00-17:00”,

   “We 09:00-17:00”,

   “Th 09:00-17:00”,

   “Fr 09:00-17:00”


Issue Expertise that describe those legal problems that the organization/website can assist the public with  URLs that link to legal issue problem codes in NSMIv2,

 “knowsAbout”: [ ““, ““,“, ““, ],

Map that shows the location of this organization  URL
Languages Spoken or readily available Language codes are ideally take from the IETF BCP 47 standard. List all languages that are offered by intake/lawyer staff, or that a substantial number of resources are offered with on the site. If the organization uses a service to provide a large number of languages, list the ones its users most frequently use.

 “knowsLanguage”: {

    “@type”: “Language”,

    “name”: [ “English”,  “Arabic”, “Swahili”, “Persian”, “Romanian, Moldavian, Moldovan”, “Spanish”, “American Sign Language”]


Cost of service — free or not? Text of “free” or “0” if it is free

“priceRange”: “free”,


Provisional Markup Standards for Legal Aid services, clinics, and hotlines

Our working group is currently refining the recommended standards that legal aid groups can use when presenting information about specific services they offer, including for common services like intake lines and websites, individual office locations, hotlines for specific issue areas and 

Individual Offices for specific locations of the same legal aid group

Combined with

Text of the individual office’s address, phone number, and other details

“availableChannel”: [

{“@type”: “ServiceChannel”,

     “name”: “Legal Aid Society of Hawaii: Honolulu office”,

    “servicePostalAddress”: {

       “@type”: “PostalAddress”,

       “streetAddress”: “924 Bethel Street”,

       “addressLocality”: “Honolulu”,

       “addressRegion”: “HI”,

       “postalCode”: “96813” }  },]

Contact Point for Intake or Applying for Services, a link or email through which a person can begin the process of signing up to be 

screened Text with subfields that include telephone or URL (number/URL), contactType (text), Description (text), areaServed (text from pre-set Area list), availableLanguage (text from pre-set Language list)

 “contactPoint”: { “@type”: “ContactPoint”,

   “contactType”: “Intake Hotline”,

   “areaServed”: “FL”,



Specific Hotlines and Clinics for a particular type of issue area, demographic group, etc., combined with

Text with subfields of Type, Name, Telephone, Area Served, Audience, Description, Opening Hours, Language, Issue Area

“availableChannel”: [

{“@type”: “ServiceChannel”,

“name”: “Senior Hotline for Oahu”,

 “telephone”: “808-536-0011”,

“areaServed”: {

 “@type”: “AdministrativeArea”, “name”: “Oahu, Hawaii”  },

“audience”: {

“@type”: “Audience”,  “name”: “Seniors 60+”},   }, ]

Clinics and Walk-In Hours that occur on a regular basis

Combined with

Text with subfields of Type, Name, Telephone, Area Served, Audience, Description, Opening Hours, LanguageIssue Area

“availableChannel”: [

{ “@type”: “ServiceChannel”,

“name”: “Walk-In Legal Clinic”,

“openingHours”: [ “Mo-Fr 09:00-11:30”],

“areaServed”: {

 “@type”: “AdministrativeArea”,

      “name”: “Hawaii”,

 “address”: {“@type”: “PostalAddress”,  “streetAddress”: “924 Bethel Street”, “addressLocality”: “Honolulu”, “addressRegion”: “HI”, “postalCode”: “96813”  }, }, }, ]

The Schema.Org Markup Tool

Caution: This tool is in beta! It is for exploration and feedback right now — and we will publish a finalized version by Summer 2020.

You can use our Markup Tool to create your own markup, automatically. You can experiment with this tool (currently in beta), to start drafting your markup code. We will announce soon when it is finalized for you to use.

Please be patient — it may take a few seconds to load.

1. Understand your baseline

1a. Gather your own Google Analytics/Console data from past 2 months

This will help you document what kinds of visitors, what amount of traffic, and what kinds of search queries are bringing people to your site. This baseline can be compared to the months after the markup is implemented, to see if you have increased the volume of the correct kind of visitors (namely, people coming from your jurisdiction).

    1. Ensure you have access to your Google Analytics account
    2. Ensure you have enabled Google Search Console within your Analytics
    3. Use the Google Search Console to see the search terms used; number of clicks; number of impressions; and the CTR and position of each search term

1b. Choose Zip Codes from which we can run a Search Audit

A search engine results audit is an evaluation of what a search engine (like Google) is displaying to people in a certain zip code, when they search for a certain query. Our Stanford team is running search engine results audits before and after markup is applied, to see if we can increase the amount of jurisdiction-correct, issue-correct, public interest websites that are being shown to people seeking help in a zip code.

If you’d like to run a search engine results audit before and after your markup, you will need to be in touch with us. Then choose 3-5 zip codes from your jurisdiction area, whose residents you would expect + prefer to be finding your site if they were searching for legal help topics.

Zip Code (e.g., 15243) Location it represents (e.g., suburbs of Pittsburgh) Reason for choice (e.g., in our jurisdiction, typically has high number of housing issues)

We will run large numbers of searches from these zip codes, and then produce a report about which sites are appearing when people seek help for different legal issues for these geographic areas.

1c. Screenshot Google’s results for common legal help queries in your area

Take screenshots of what is appearing on Google Search results in your zipcode, for the following common types of queries. These screenshots will provide more visual support for understanding current problems with legal help search, and a comparison for an improved search experience that hopefully will occur when the markup is implemented.

  1. Software setup: Use Google Chrome, and install Full Page Screen Capture extension.  This extension allows you to take an image or pdf capture of the full page that the browser is showing you.
  2. Location check: Ensure computer is located in your intended service area’s zip code, and isn’t connected through a VPN or other program that would change your apparent location. 
  3. Search Engine time: Go to
  4. Search + Screenshot! Search for all of the following terms exactly (though choosing right location from brackets and removing brackets). Then on the Search results page — tap the Full Page Screen Capture icon (a little camera). Wait for it to capture whole page. Then press Download Image icon, to download the png.
  • Legal Aid
  • Legal Aid near Me
  • Legal Aid [your state/city, e.g., “Legal Aid Pittsburgh”]
  • Free Lawyer
  • Free Lawyer near me
  • Free lawyer [your state/city]
  • What to do if my partner is threatening me with violence
  • What to do if my partner is threatening me with violence [your state/city]
  • contractor ripped me off for flood repairs
  • contractor ripped me off for flood repairs [your state/city]
  • how to deal with credit card lawsuit threat
  • how to deal with credit card lawsuit threat [your state/city]
  • can a landlord evict you if someone pays more
  • can a landlord evict you if someone pays more [your state/city]
  • [name of legal website: e.g., “Law Foundation of Silicon Valley” or “Law Help NY”]

     5. Prep the Images for Sharing: Collect all the pngs for the searches — and save into a folder to share with your team + external partners. These images can show the full view of what is appearing in your jurisdiction currently, when people are searching for legal help. We can compare these to search results after the markup is implemented.

2) Check if you have any Plugins/Extensions that are automatically creating Schema markup

  • If you are using WordPress to manage your website’s content, you might have a popular plugin Yoast SEO already operating. This likely is creating markup by default for your organization.
  • Before you implement the new markup according to the standards we’ve established above, disable the Yoast SEO’s function by working with your web developer. You don’t want to have 2 competing markups, so you should ensure that Yoast’s is turned off.

3) Connect with your Web Developers or CMS about applying the markup

You will need to put your markup about your organization onto your homepage. It will not be seen by visitors, but it will be seen by search engines. Some content management systems have a place for you to input markup through a non-coding interface. Otherwise, you should work with your web developer to arrange for the markup to be inserted into the site’s homepage code.

See more help here at Google Search’s guide to structured data.

If you will be putting the markup yourself, without using a plug-in or developer, here are some basic guidelines:

  • Place the code in the <head> tags of your site. It will go into this wrapper so that the Search Engine crawlers can see it, but your site visitors will not.
  • Because the information we’ve encoded applies to your whole site, we encourage you to put it in the <head> tags that apply to the whole site.
  • If the information applies only to a certain section of your site, place the code in only the <body> of those sections.
  • Read more about markup here.

If you want to see more examples of how Schema markup can be made for a legal aid group or help portal, see our Github repository for examples of legal schema markup.

What is Legal Help Schema?

Legal Help Schema is a standard set of tags that can be applied to content on a website. Like html, it will tell applications how to understand the natural-language text — making it clear what this text means not just to humans but also to machines.

Schema tags can be used by anyone (with basic technical skills) can make their existing website content more easily searchable and understandable to other applications — in particular search engines. It integrates into the wider standards, of how to markup site contents, so that search engines can discover and display it more effectively.

Legal Help Schema is being created specifically for the types of content on legal help sites. It will tag up particular legal issues; what jurisdictions the information concerns; what types of procedures it refers to; and what service provider contact info, fees involved, and eligibility criteria apply.

The Schema tags can be used by courts, self-help centers, non-profits, clinics, and other online legal help providers to improve the machine readability of the content on their site.

We will be integrating legal help categories from the NSMIv2 Database, as a start of a how to tag legal help topics and materials online.

What value does a Legal Help Schema offer to webmasters and end-users?

Tags like these will help make the website’s human-readable content into machine-readable form. That way, future projects can automate the conversion of the tagged content into the templated designs. These tags will also be useful in getting search engine applications to direct users to the site.

The Legal Help Schema data tags can be used to improve search results on Google, Bing, Yandex, and other applications. As it is integrated into (a non-profit collective of search engine providers, that they use to parse web content and deliver higher-quality search results), then material that is marked up with these tags will be given

Not only will court and official material appear higher in the search results, but it can be presented in ‘smart snippets’ with excerpts and priority provided to people directly on the search results page. The tagging will tell how search engines can best display legal help information, using smart snippets, excerpted bullet-point lists, form and fee previews, contact information for service providers, and other priority displays.

Also, it will ensure that users are directed to the correct jurisdiction of material.

Legal Help Schema takes inspiration from medical and healthcare information providers, who created a markup tag set for their content. Read more about the Medical Markup effort here at

Just as the Mayo Clinic and other medical experts created a standard Markup language for their online content, our team is working with to create a standard markup schema for legal procedures and service information.

We welcome your feedback on the standards, the example markup, and the markup tool (as we develop it out of its current Beta phase).

Also, let us know if you would like to join our Schema-defining working group — or if you would like to apply it to your site. 

MargaretMarkup Your Site