Problema con peticiones http basicas

Hola como estan? estoy usando la ethernet shield para mostrar un index.html simple que esta dentro de una sd colocada en el slot para sd del ethernet, el problema es el siguiente yo conecto el ethernet a la red y entro a la ip que le asigne hasta ahi todo bien me muestra la pagina pero si recargo la pagina no carga mas, tengo que desconectar y conectar la arduino o tengo que abrir el monitor serie para que funcione de nuevo.
Lo mismo pasa si abro la web desde una pc por ejemplo y luego la quiero abrir desde un smartphone deja de funcionar, alguien sabe como solucionar eso para que cuando abra y recargue vuelva a mostrarme el index? dejo un gif para que vean que al recargar queda en blanco y dejo codigo:

#include<SD.h>
#include <SPI.h>  //Importamos librería comunicación SPI
#include <Ethernet.h>  //Importamos librería Ethernet
 
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };//Ponemos la dirección MAC de la Ethernet Shield que está con una etiqueta debajo la placa
IPAddress ip(192,168,1,150); //Asingamos la IP al Arduino
EthernetServer server(80); //Creamos un servidor Web con el puerto 80 que es el puerto HTTP por defecto

int led=6; //Pin del led
String estado="OFF"; //Estado del Led inicialmente "OFF"

File webFile;

void setup()
{
  Serial.begin(9600);
  // Inicicalizo la tarjeta micro SD
    Serial.println("Inicializando MicroSD...");
    if (!SD.begin(4)) {
        Serial.println("ERROR - Inicializacion MicroSD fallida!");
        return;    // init failed
    }
    Serial.println("EXITO - MicroSD inicializada.");
    // check for index.htm file
    if (!SD.exists("INDEX~1.HTM")) {
        Serial.println("ERROR - No encontrado index.html!");
        return;  // can't find index file
    }
    webFile = SD.open("INDEX~1.HTM");
    Serial.println("EXITO - Index.html encontrado.");
  // Inicializamos la comunicación Ethernet y el servidor
  Ethernet.begin(mac, ip);
  server.begin();
  Serial.print("server is at ");
  Serial.println(Ethernet.localIP());
 
  pinMode(led,OUTPUT);
}

void loop()
{
  EthernetClient client = server.available(); //Creamos un cliente Web
  //Cuando detecte un cliente a través de una petición HTTP
  if (client) {
    Serial.println("new client");
    boolean currentLineIsBlank = true; //Una petición HTTP acaba con una línea en blanco
    String cadena=""; //Creamos una cadena de caracteres vacía
    while (client.connected()) {
      if (client.available()) {
        char c = client.read();//Leemos la petición HTTP carácter por carácter
        Serial.write(c);//Visualizamos la petición HTTP por el Monitor Serial
        cadena.concat(c);//Unimos el String 'cadena' con la petición HTTP (c). De esta manera convertimos la petición HTTP a un String
 
         //Ya que hemos convertido la petición HTTP a una cadena de caracteres, ahora podremos buscar partes del texto.
         int posicion=cadena.indexOf("LED="); //Guardamos la posición de la instancia "LED=" a la variable 'posicion'
 
          if(cadena.substring(posicion)=="LED=ON")//Si a la posición 'posicion' hay "LED=ON"
          {
            digitalWrite(led,HIGH);
            estado="ON";
          }
          if(cadena.substring(posicion)=="LED=OFF")//Si a la posición 'posicion' hay "LED=OFF"
          {
            digitalWrite(led,LOW);
            estado="OFF";
          }
 
        //Cuando reciba una línea en blanco, quiere decir que la petición HTTP ha acabado y el servidor Web está listo para enviar una respuesta
        if (c == '\n' && currentLineIsBlank) {
 
            // Enviamos al cliente una respuesta HTTP
            client.println("HTTP/1.1 200 OK");
            client.println("Content-Type: text/html");
            client.println();
            if (webFile){
               while(webFile.available()){
                      client.write(webFile.read()); // send web page to client
               }
               webFile.close();
           }
           break;
        }
        if (c == '\n') {
          currentLineIsBlank = true;
        }
        else if (c != '\r') {
          currentLineIsBlank = false;
        }
      }
    }
    //Dar tiempo al navegador para recibir los datos
    delay(1);
    client.stop();// Cierra la conexión
  }
}

Otra cosa tengo un led el cual prendo y apago con las peticiones http://192.168.1.150/?LED=ON y http://192.168.1.150/?LED=OFF eso funciona en cualquier momento lo que no muestra 2 veces es el index de la pagina
Gracias saludos!

arduino.gif