Be Sociable, Share!

jueves, 5 de mayo de 2022

Preparación para la prueba de acceso - Javascript

 




Las variables en JavaScript se crean mediante la palabra reservada var
La palabra reservada var solamente se debe indicar al definir por primera vez la variable, lo que se denomina declarar una variable. 

El nombre de una variable también se conoce como identificador y debe cumplir las siguientes normas:

  • Sólo puede estar formado por letras, números y los símbolos $ (dólar) y _ (guión bajo).
  • El primer carácter no puede ser un número.

Correcto:

var $numero1;
var _$letra;
var $$$otroNumero;

Incorrecto:

var 1numero;       // Empieza por un número
var numero;1_123;  // Contiene un carácter ";"

Numéricas


var iva = 16;        // variable tipo entero
var total = 234.65;  // variable tipo decimal

Booleanos


Una variable de tipo boolean almacena un tipo especial de valor que solamente puede tomar dos valores: true (verdadero) o false (falso). No se puede utilizar para almacenar números y tampoco permite guardar cadenas de texto.

var clienteRegistrado = false;
var ivaIncluido = true;

Arrays


var nombre_array = [valor1, valor2, ..., valorN];
var dias = ["Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sábado", "Domingo"];

Cadenas de texto


var mensaje = "Bienvenido a nuestro sitio web";
var nombreProducto = 'Producto ABC';
var letraSeleccionada = 'c';

/* El contenido de texto1 tiene comillas simples, por lo que
    se encierra con comillas dobles */
var texto1 = "Una frase con 'comillas simples' dentro";

/* El contenido de texto2 tiene comillas dobles, por lo que
    se encierra con comillas simples */
var texto2 = 'Una frase con "comillas dobles" dentro';


Si se quiere incluir... Se debe incluir...

Este mecanismo de JavaScript se denomina "mecanismo de escape" de los caracteres 
problemáticos, y es habitual referirse a que los caracteres han sido "escapados".

Una nueva línea \n
Un tabulador \t
Una comilla simple \'
Una comilla doble \"
Una barra inclinada \\


Asignación


var texto1 = 'Una frase con \'comillas simples\' dentro';
var texto2 = "Una frase con \"comillas dobles\" dentro";

/* Error, la asignación siempre se realiza a una variable,
    por lo que en la izquierda no se puede indicar un número */
5 = numero1;

// Ahora, la variable numero1 vale 5
numero1 = 5;

// Ahora, la variable numero1 vale 4
numero1 = numero2;

Incremento y decremento


var numero = 5;
++numero;
alert(numero);  // numero = 6

var numero = 5;
--numero;
alert(numero);  // numero = 4

var numero1 = 5;
var numero2 = 2;
numero3 = numero1++ + numero2;
// numero3 = 7, numero1 = 6

var numero1 = 5;
var numero2 = 2;
numero3 = ++numero1 + numero2;
// numero3 = 8, numero1 = 6


Por tanto, en la instrucción numero3 = numero1++ + numero2;, el valor de numero1 se incrementa después de realizar la operación (primero se suma y numero3 vale 7, después se incrementa el valor de numero1 y vale 6). Sin embargo, en la instrucción numero3 = ++numero1 + numero2;, en primer lugar se incrementa el valor de numero1 y después se realiza la suma (primero se incrementa numero1 y vale 6, después se realiza la suma y numero3 vale 8).

Lógicos 

El resultado de cualquier operación que utilice operadores lógicos siempre es un valor lógico o booleano


Negación

La negación lógica se obtiene prefijando el símbolo ! al identificador de la variable.

var visible = true;
alert(!visible);  // Muestra "false" y no "true"


variable!variable
truefalse
falsetrue

  • Si la variable contiene un número, se transforma en false si vale 0 y en true para cualquier otro número (positivo o negativo, decimal o entero).
  • Si la variable contiene una cadena de texto, se transforma en false si la cadena es vacía ("") y en true en cualquier otro caso.
var cantidad = 0;
vacio = !cantidad;  // vacio = true

cantidad = 2;
vacio = !cantidad;  // vacio = false

var mensaje = "";
mensajeVacio = !mensaje;  // mensajeVacio = true

mensaje = "Bienvenido";
mensajeVacio = !mensaje;  // mensajeVacio = false

AND


variable1variable2variable1 && variable2
truetruetrue
truefalsefalse
falsetruefalse
falsefalsefalse
var valor1 = true;
var valor2 = false;
resultado = valor1 && valor2; // resultado = false

valor1 = true;
valor2 = true;
resultado = valor1 && valor2; // resultado = true

Matemáticos

var numero1 = 10;
var numero2 = 5;

resultado = numero1 / numero2;  // resultado = 2
resultado = 3 + numero1;        // resultado = 13
resultado = numero2 – 4;        // resultado = 1
resultado = numero1 * numero 2; // resultado = 50

Se trata del operador "módulo", que calcula el resto de la división entera de dos números. Si se divide por ejemplo 10 y 5, la división es exacta y da un resultado de 2. El resto de esa división es 0, por lo que módulo de 10 y 5 es igual a 0.

JavaScript se indica mediante el símbolo %

var numero1 = 10;
var numero2 = 5;
resultado = numero1 % numero2; // resultado = 0

numero1 = 9;
numero2 = 5;
resultado = numero1 % numero2; // resultado = 4

Los operadores matemáticos también se pueden combinar con el operador de asignación para abreviar su notación:

var numero1 = 5;
numero1 += 3;  // numero1 = numero1 + 3 = 8
numero1 -= 1;  // numero1 = numero1 - 1 = 4
numero1 *= 2;   // numero1 = numero1 * 2 = 10
numero1 /= 5;   // numero1 = numero1 / 5 = 1
numero1 %= 4;   // numero1 = numero1 % 4 = 1

Relacionales

Los operadores relacionales definidos por JavaScript son idénticos a los que definen las matemáticas: mayor que (>), menor que (<), mayor o igual (>=), menor o igual (<=), igual que (==) y distinto de (!=).

var numero1 = 3;
var numero2 = 5;
resultado = numero1 > numero2; // resultado = false
resultado = numero1 < numero2; // resultado = true

numero1 = 5;
numero2 = 5;
resultado = numero1 >= numero2; // resultado = true
resultado = numero1 <= numero2; // resultado = true
resultado = numero1 == numero2; // resultado = true
resultado = numero1 != numero2; // resultado = false


var texto1 = "hola";
var texto2 = "hola";
var texto3 = "adios";

resultado = texto1 == texto3; // resultado = false
resultado = texto1 != texto2; // resultado = false

(a es menor que bb es menor que cA es menor que a, etc.)
resultado = texto3 >= texto2; // resultado = false

// El operador "=" asigna valores
var numero1 = 5;
resultado = numero1 = 3;  // numero1 = 3 y resultado = 3

// El operador "==" compara variables
var numero1 = 5;
resultado = numero1 == 3; // numero1 = 5 y resultado = false



var valores = [true, 5, false, "hola", "adios", 2];


Determinar cual de los dos elementos de texto es mayor

var resultados = valores [3] > valores [4];
alert(resultado);

Utilizando exclusivamente los dos valores booleanos del array, 
determinar los operadores necesarios para obtener un resultado true y 
otro resultado false

var valor1 = valores[0]; true
var valor2 = valores [2]; false

var resultado = valor1 || valor2;
alert( resultado)
true

var resultado = valor1 && valor2;
alert(resultado)
false 

Determinar el resultado de las cinco operaciones 
matemáticas realizadas con los dos elementos numéricos

var num1 = valores[1];
var num2 = valores[5];

var suma = num1 + num2;
alert(suma);

var resta =  num1-num2;
alert(resta);

var multiplicacion = num1*num2;
alert(multiplicacion);

var division = num1/numb2;
alert(division);

var modulo= num1 % num2;
alert(modulo);


Estructura if

"si se cumple esta condición, hazlo; si no se cumple, haz esto otro."

if(condicion) {
  ...
}

Si la condición se cumple (es decir, si su valor es true) se ejecutan todas las instrucciones que se encuentran dentro de {...}


var mostrarMensaje = true;

if(mostrarMensaje) {
  alert("Hola Mundo");
}

En este caso, la condición es una comparación entre el valor de la variable mostrarMensaje y el valor true. El mensaje sí que se muestra al usuario ya que la variable mostrarMensaje tiene un valor de true

var mostrarMensaje = true; // Se comparan los dos valores if(mostrarMensaje == false) { ... } // Error - Se asigna el valor "false" a la variable if(mostrarMensaje = false) { ... }

Estructura if...else

"si se cumple esta condición, hazlo; si no se cumple, haz esto otro".

Si la condición se cumple (es decir, si su valor es true) se ejecutan todas las instrucciones que se encuentran dentro del if(). Si la condición no se cumple (es decir, si su valor es false) se ejecutan todas las instrucciones contenidas en else { }

if(condicion) {
  ...
}
else {
  ...
}


var edad = 18;

if(edad >= 18) {
  alert("Eres mayor de edad");
}
else {
  alert("Todavía eres menor de edad");
}

var nombre = "";

if(nombre == "") {
  alert("Aún no nos has dicho tu nombre");
}
else {
  alert("Hemos guardado tu nombre");
}



https://drive.google.com/file/d/1TS-vcFMeerrMNIz9Mqc9icc6sCbif2JH/view?usp=sharing
VARIABLES Y OPERADORES:
https://drive.google.com/file/d/1OIxiGFRZTrcaQyGx339oleHCSFIAWPd7/view?usp=sharing
CONDICIONES IF EJERCICIO:
https://drive.google.com/file/d/1t3XamqCMw1adCUpbXTBVUqSwhtpcySJO/view?usp=sharing

martes, 19 de abril de 2022

Core Web Vital Metrics


If you can't measure it, you can't improve it

Peter Drucker, the father of modern day management


Google has introduced Core Web Vitals in order to accurately gauge just how fast and user-friendly your website is. After all, fast doesn't necessarily mean good anymore. Google will be looking at 3 main metrics to decide how good your Core Web Vitals Score. 

  • Largest Contentful Paint (LCP) How fast the page loads
  • First Input Delay (FID) How quickly people can start actually using the website
  • Cumulative Layout Shift (CLS) How much the page visually shifts while loading

viernes, 20 de noviembre de 2020

AUDITORÍA SEO

AUDITORÍA SEO

-ANÁLISIS DE INDEXABILIDAD-


1.NÚMERO DE PÁGINAS INDEXADAS EN GOOGLE

Analizamos las SERP:

  • Número de páginas indexadas

  • Aparecen las páginas más importantes en primer lugar

  • ¿Son los snippets descriptivos y atractivos?


  • ¿Son los títulos relevantes y únicos?

  • ¿Hay subdominios indexados?

  • ¿Son otros sitios?

  • ¿Son sitios en desarrollo?

  • ¿Son pruebas?


2. ANÁLISIS DE LA CACHÉ

Analizamos la web en “Versión solo texto” (con Web Developer también se puede simular la visión caché desactivando JavaScript, CSS e imágenes):

  • Buscamos la recencia (la última vez que pasó el bot de Google)

  • ¿Hay texto de tamaño distinto? ¿Se usan marcas de jerarquía donde se debe?

  • Revisión de contenido:

¿Están todos los enlaces? ¿Están los nombres de las secciones? ¿Está todo el texto?

  • ¿Hay contenido duplicado?

  • ¿Está el menú y el resto de enlaces?

  • ¿Encuentras marcas de jerarquía?

  • ¿Observas algo extraño en la versión de Solo Texto de la caché de Google de página?

  • Problemas de indexabilidad

    • Splash-pages

    • Páginas pre-home

    • Flash / Silverlight

    • Frames



3. GOOGLE SEARCH CONSOLE

  • Cobertura

    • ¿En total es coherente con el inventario de contenido de nuestro sitio?

    • ¿La tendencia es lógica?

    • ¿El número de páginas excluidas es superior al de válidas?

    • ¿Hay una correlación entre páginas indexadas y excluidas?

    • ¿La caída de páginas indexadas afecta el rendimiento?

    • Tomaremos en consideración los datos de Cobertura con respecto al comando Site de Google.

  • Inspección de URLs

    • Páginas con error (El pluggin Link Redirect Trace también indica el código HTTP devuelto)

  • ¿Aparece todo el HTML de la página?

  • ¿Es visible el contenido?

  • ¿La página devuelve 200?

  • ¿Se han bloqueado recursos?

*La herramienta WMTIPS es una herramienta de análisis de indexabilidad muy interesante.

  • Errores de rastreo (Cobertura)

    • Páginas con error

      • Revisar el número de errores y advertencias

      • Revisar su tendencia

      • Revisar su clasificación según el estado, la tendencia y el número de páginas

    • Páginas excluidas

      • Analizar sus tipos, número, tendencia, ejemplos, etc.

      • Puede haber páginas excluidas de forma intencionada, en ese caso no son errores

      • Excluidas por la etiqueta " nonindex": Google ha encontrado una directiva "nonindex"

      • Bloqueada por la etiqueta "nonindex"

      • Bloqueada por robots.txt

  • No se ha encontrado (404)


  • Rendimiento del sitio 

    • Cuando el tiempo de descarga aumenta, Google puede rastrear menos páginas

  • Auditar sitemaps

    • ¿Se han enviado sitemaps?

    • ¿Se ha consultado recientemente?

    • ¿Hay errores?

    • ¿Cuántas URL se han enviado?

    • ¿Hay errores?

    • ¿Cuántas páginas se han indexado?

    • ¿Se están excluyendo URLs?

    • ¿Qué tendencia hay?

    • ¿Qué tipos de errores se producen?

  • Títulos/ descripciones duplicadas 

    • Página alternativa con etiqueta canónica adecuada: la página es un duplicado de otra que Google considera canónica. No hay que hacer nada.

    • Duplicada: el usuario no ha indicado ninguna versión canónica. La página tiene algún duplicado, pero no se ha indicado que ninguno sea la versión canónica. Indicar cuál es la versión canónica de esta página de forma explícita.

    • Duplicada: Google ha elegido una versión canónica diferente a la del usuario: la URL canónica indicada no es correcta. Por lo general, se debe canonicalizar la URL correcta.

  • Robots.txt


4.SCREAMING FROG

  • Número de páginas HTML  rastreadas

  • Response codes: ¿Hay errores?

  • ¿Cuántas páginas cumplen los requisitos técnicos para ser indexables?

  • Para analizar Sitemaps

    • Mode > List

    • Seleccionamos Upload > Download XML Sitemap

    • Comprobamos que todas las URL sean indexables y que el número total sea correcto.

    • Identificamos el sitemap en la configuración del rastreo 

    • Nos permite cruzar el rastreo de Screaming Frog con la lista de archivos sitemap. Con esto detectamos 

      • URLS  que no están en el sitemap

      • URLS huérfanas

  • Canonical

    • ¿Todas las páginas tienen canonical? (Filtro canonical/no canonical)

    • ¿Referencian a sí mismas o hay canonicalizadas? (Filtro canonical self referencing / Canonicalised)

  • Contenido duplicado

    • Pestaña Page Title y Filtro Duplicate

    • Otras formas de buscar thin content, pestaña content y filtro:

      • Exact duplicates

      • Near duplicates

      • Low content pages

    • Robots.txt

      • ¿Hay recursos bloqueados por el archivo robots.txt?

        • Pestaña: Response Codes

        • Filtro: Blocked by Robots.txt

      • ¿Hay recursos bloqueados por la meta robots?

        • Pestaña: Directives

        • Filtro: No index



-ANÁLISIS DE LOGS DE SERVIDOR-

SCREAMING FROG

  • En esta herramienta cargamos:

    • Log del servidor

    • Lista de URLS a analizar

  • Filtramos por bots 

  • Obtenemos KPI relacionados con el rastreo

  • Análisis de rastreo de URLS:

    •  ¿Son correctos los recursos más rastreados?

    • ¿Hay recursos con errores o inconsistencias en la respuesta (no siempre devuelven el mismo código)?

  • Análisis de rastreo de directorios:

    • ¿Son los directorios más relevantes los más rastreados?

    • ¿En qué directorios se producen errores?

    • ¿Se rastrean directorios irrelevantes?


-AUDITORÍA TÉCNICA (VERSIÓN MÓVIL)-


  • ¿El sitio es compatible con dispositivos móviles? ¿Qué tipo de implementación hay en el sitio?

  • ¿GSC ha detectado errores en la versión móvil?

    • ¿De qué tipo son los errores?

    • ¿En qué tipo de páginas se producen?

-SEGURIDAD-


  • ¿Funciona con protocolo seguro HTTPS?

  • Si se intenta acceder de forma no segura con HTTP, ¿se ha implementado una redirección 301 a la URL equivalente HTTPS?

  • Todos los enlaces del sitio deben tener en su href la URL en versión segura HTTPS

  • Todos los elementos referenciados (imágenes, CSS, JavaScript, fuentes, etc), tanto internos como externos deben estar en versión segura HTTPS.

  • Lo podemos comprobar con Screaming Frog, en su pestaña Protocol. Otras herramientas como Ryte o SEMRush advierten de problemas de seguridad en sus crawlers.



-CONFIGURACIÓN INTERNACIONAL-

CACHÉ

  • Etiquetas de enlace alternate/hreflang. Los errores más comunes:

    • Faltan enlaces recíprocos: si hay una relación de una página A a una página B, desde B debe haber un recíproco a A.

    • Códigos de idioma incorrectos:

      • Para el idioma: ISO 639-1

      • Para la región: ISO 3166-1 Alpha2


GOOGLE SEARCH CONSOLE

  • ¿Se ha seleccionado el país objetivo del sitio?

  • ¿Es coherente con la configuración alternate/hreflang?

HERRAMIENTA IP LOCATION

  • Localización del servidor


-RELEVANCIA DE CONTENIDOS-

SCREAMING FROG

  • En los TITLES, revisar:

    • Tildes

    • Duplicados

    • Extensión

    • Relevancia

  • Metadescripciones

    • Sin metadescripción

    • Duplicados

    • Extensión

    • No relevantes

  • Etiquetas de jerarquía H1

  • Texto alternativo en imágenes

  • Anchor Text (Bulk Export > All Anchor Text)

    • Anchor text no relevantes con la página de destino

    • Anchor text sobreoptimizados en los que se haya abusado de la palabra clave


WEB DEVELOPER

  • Etiquetas de jerarquía Hn

    • Diagnóstico por tipo de plantilla del sitio 

      • Páginas home o listado de elementos

    • Páginas de contenidos como noticias o fichas de productos 

  • Texto alternativo en imágenes

    • Imágenes sin texto alternativo o con texto alternativo vacío

    • Textos alternativos no relevantes

    • Textos alternativos engañosos o sobreoptimizados

    • ¿El CMS permite incluir textos alternativos en todas las imágenes?

    • Descartar imágenes secundarias o relacionadas con el diseño de la página

CACHÉ

  • Etiqueta de jerarquía Hn

  • Imágenes: texto alternativo

  • Anchor text:



WEB

  • Texto incrustado en imágenes

  • Orden de carga (Con Web Developer y desactivando JavaScript y CSS // Con la opción Miscellaneous > Linearize Page)

    • ¿En qué orden aparecen los elementos en la página?



-AUDITORÍA DE POPULARIDAD-

GOOGLE SEARCH CONSOLE

  • SEO negativo

    • Linkbuilding hecho en el pasado

    • Compra/intercambio de enlaces

    • Redifusión de contenido

    • Plagio de contenidos con enlaces internos

  • Enlaces bienintencionados (aunque sospechosos)

  • Sitios web con más imágenes

  • Monitorizar enlaces

    • Descargamos todas las opciones posibles

      • Más enlaces de ejemplo

      • Enlaces más recientes

    • Descargamos un Excel y buscamos:

      • Site wide links

      • Listas de enlaces

      • Enlaces en footers o sidebars

      • Enlaces desde dominios con mala reputación

      • Enlaces con keyword o anchor text

      • Enlaces desde UGC (comentarios, foros, etc)

      • Muchos enlaces desde un dominio único

      • Enlaces con anchor text off topic

      • Enlaces desde dominios extraños

      • Muchos enlaces a una única página (home)

  • Enlaces entrantes:

    • Dominios desconocidos con un número muy elevado de enlaces en > Con más enlaces a tu sitio

    • Palabras clave irrelevantes en > Vinculación de tus datos

    • URL desconocidas en > Páginas más enlazadas

    • Crecimientos injustificados de enlaces hacia una página interna en > Páginas más enlazadas

    • Identificar palabras clave en el contenido > Consultas de búsqueda


SEMRUSH – Herramienta en la que centralizamos toda la gestión de los enlaces entrantes encontrados

  • Calidad de los dominios

  • Backlink Audit

    • Detección de enlaces tóxicos

      • Redes de enlaces

      • Spam en comunidades

      • Entorno perjudicial

      • Enlaces malipulativos

      • Dominio de origen irrelevante

    • Integrar con todas las fuentes posibles

    • Añadir enlaces de forma manual

    • Revisar de forma manual los casos dudosos

    • Eliminar/Desautorizar

    • Datos de enlace

    • Estado de la petición

    • Sugiere y facilita el envío del correo de petición

    • Gestión de la lista de desautorización

    • Generación del archivo y envío

    • Se comunica el envío y la herramienta recalcula el Toxic Score

  • Monitorización del enlazado

    • Seguimiento periódico de enlaces perdidos/ganados


OTRAS FORMAS DE SEO NEGATIVO

  • Ataques a dominios o hosting

    • Sitios hackeados

    • Velocidad de descarga

    • Manipulación de cabeceras HTTP

    • Inyección de malware

    • Infección para envío de spam

    • Content scraping

    • HERRAMIENTAS PARA ANALIZARLO

      • Screamingfrog: Monitoriza el comportamiento del sitio

      • SubVersion: Controla la fecha de actualización de los archivos en el servidor

      • Plugin de Wordpress: Mantenerlo siempre actualizado con el código de la web y del servidor

      • Revisar con frecuencia el contenido de las páginas indexadas de Google

    • QUÉ ANALIZAMOS

      • ¿Hay cambios inexperados en el número de páginas indexadas?

      • Comprobar si Google ve contenido inapropiado en nuestro sitio

      • Comprobar que no haya problemas de seguridad en el sitio

      • ¿Está la IP de nuestro servidor en una lista negra?

  • Copyscape: Para detectar contenido plagiado

  • Google Alerts: Configuramos nuestras alertas con marca, producto, etc

  • SemRush: ¿Aparecen errores y advertencias que no son coherentes con el matenimiento del código del sitio?

  • Sixtrix: ¿Aparecen errores y advertencias que no son coherentes con el matenimiento del código del sitio?