Upgrade to Pro — share decks privately, control downloads, hide ads and more …

SEO is Not a Four-Letter Word

SEO is Not a Four-Letter Word

How can your startup get more users to see your app in the first pages of Google results without spending money on advertising? Together we’ll walk through a way to create your own data structures for Google to consume using JSON-LD and the data you already have–no gems or cursing necessary.

Presented at RubyNation 2017

Katherine McClintic

June 16, 2017
Tweet

Other Decks in Programming

Transcript

  1. The Process •  What is SEO? •  Providing data to

    search engines •  Microdata •  Google’s Search Console and Structured Data Testing Tool •  JSON-LD •  JSON-LD’s place in your Rails app @scarletalphabet
  2. Surfacing Your Data •  Search engines can pick up on

    keywords – Primarily in <title> tags and other <meta> tags •  Intentionally providing relevant data for a search engine to consume is more effective – Is this restaurant family-friendly? – Does this product have a good review? – Is this expensive? – Where is this located? @scarletalphabet
  3. Checking Existing Data •  Structured Data – Data with a high

    level of organization – Easy for search engines to digest – Depending which context you use, some data will be mandatory and some will be optional •  Common older format: Microdata – name-value pairs (known as items) defined according to a context @scarletalphabet
  4. Microdata •  Used to nest structured data within HTML content

    –  Interwoven with the user-visible text •  Syntax: –  itemscope, itemtype, and itemprop @scarletalphabet
  5. JSON-LD •  JavaScript Object Notation for Linked Data –  Looks

    like plain JSON with some syntactical differences –  Like microdata it consists of properties and values •  Preferred by most search engines (including Google) over microdata format •  Not interwoven with user- visible text { "@context": "http://schema.org", "@type": "Restaurant", "address”: { "@type": "PostalAddress", "addressLocality": "Washington", "addressRegion": "DC", "postalCode": "20004", "streetAddress": "900 F St NW” }, "name": "Gordon Biersch - F Street”, … } @scarletalphabet
  6. Translating to Ruby •  A schema org helper –  Define

    your json_ld_tag –  Define your method that builds the data structure for your restaurant, product, event, etc. –  Methods to conditionally add certain nested data •  Inserting into views –  Calling the json_ld_tag method with the object(s) at hand { "@context" => http://schema.org, "@type" => "Restaurant", "name" => restaurant.name, "description" => restaurant.description, "photo" => restaurant.main_image_url, "telephone" => restaurant.address.phone, "geo" => { "@type" => "GeoCoordinates", "latitude" => restaurant.address.latitude, "longitude" => restaurant.address.longitude, }, … } @scarletalphabet
  7. When the Data Doesn’t Quite Fit •  You don’t know

    if a property will always have a value – Consider tapping into your json_ld method to insert that value only if it is present •  You have data that doesn’t fit a particular representation – "additionalProperty" wildcard @scarletalphabet
  8. Not a Cure-All •  Search rankings can be tough to

    climb in a busy or generalized market – Specificity is key •  Large companies typically have more time and money to spend on SEO work – Fixing and improving your structured data will only have a positive effect @scarletalphabet
  9. Takeaways •  Google Search Console/Structured Data Testing Tool – Are you

    and Google on the same page? •  JSON-LD – Preferred by major search engines including Google – Easier to express complex data structures in a (relatively) neat and orderly fashion @scarletalphabet
  10. Important Links •  http://schema.org/ (major source of schemas for structured

    data) •  https://developers.google.com/schemas/ formats/json-ld •  https://search.google.com/structured-data/ testing-tool/ @scarletalphabet